{"version":3,"sources":["node_modules/browser-pack/_prelude.js","libraries.js","node_modules/@babel/runtime/helpers/arrayLikeToArray.js","node_modules/@babel/runtime/helpers/arrayWithHoles.js","node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","node_modules/@babel/runtime/helpers/assertThisInitialized.js","node_modules/@babel/runtime/helpers/classCallCheck.js","node_modules/@babel/runtime/helpers/createClass.js","node_modules/@babel/runtime/helpers/createSuper.js","node_modules/@babel/runtime/helpers/defineProperty.js","node_modules/@babel/runtime/helpers/extends.js","node_modules/@babel/runtime/helpers/getPrototypeOf.js","node_modules/@babel/runtime/helpers/inherits.js","node_modules/@babel/runtime/helpers/interopRequireDefault.js","node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","node_modules/@babel/runtime/helpers/iterableToArray.js","node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","node_modules/@babel/runtime/helpers/nonIterableRest.js","node_modules/@babel/runtime/helpers/nonIterableSpread.js","node_modules/@babel/runtime/helpers/objectSpread2.js","node_modules/@babel/runtime/helpers/objectWithoutProperties.js","node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","node_modules/@babel/runtime/helpers/setPrototypeOf.js","node_modules/@babel/runtime/helpers/slicedToArray.js","node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","node_modules/@babel/runtime/helpers/toConsumableArray.js","node_modules/@babel/runtime/helpers/toPrimitive.js","node_modules/@babel/runtime/helpers/toPropertyKey.js","node_modules/@babel/runtime/helpers/typeof.js","node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","node_modules/@emotion/memoize/dist/memoize.browser.cjs.js","node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.dev.js","node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.prod.js","node_modules/@emotion/react/dist/emotion-element-4300ad44.cjs.prod.js","node_modules/@emotion/react/dist/emotion-element-48d2c2e4.cjs.dev.js","node_modules/@emotion/react/dist/emotion-react.cjs.dev.js","node_modules/@emotion/react/dist/emotion-react.cjs.js","node_modules/@emotion/react/dist/emotion-react.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/cache/dist/emotion-cache.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/cache/dist/emotion-cache.cjs.js","node_modules/@emotion/react/node_modules/@emotion/cache/dist/emotion-cache.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/hash/dist/emotion-hash.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/hash/dist/emotion-hash.cjs.js","node_modules/@emotion/react/node_modules/@emotion/hash/dist/emotion-hash.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.js","node_modules/@emotion/react/node_modules/@emotion/memoize/dist/emotion-memoize.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.js","node_modules/@emotion/react/node_modules/@emotion/serialize/dist/emotion-serialize.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.js","node_modules/@emotion/react/node_modules/@emotion/sheet/dist/emotion-sheet.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/unitless/dist/emotion-unitless.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/unitless/dist/emotion-unitless.cjs.js","node_modules/@emotion/react/node_modules/@emotion/unitless/dist/emotion-unitless.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/utils/dist/emotion-utils.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/utils/dist/emotion-utils.cjs.js","node_modules/@emotion/react/node_modules/@emotion/utils/dist/emotion-utils.cjs.prod.js","node_modules/@emotion/react/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.dev.js","node_modules/@emotion/react/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.js","node_modules/@emotion/react/node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.cjs.prod.js","node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.cjs.dev.js","node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.cjs.js","node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.cjs.prod.js","node_modules/@emotion/weak-memoize/dist/weak-memoize.browser.cjs.js","node_modules/@floating-ui/core/dist/floating-ui.core.umd.js","node_modules/@floating-ui/dom/dist/floating-ui.dom.umd.js","node_modules/core-js/actual/array/fill.js","node_modules/core-js/actual/array/find-index.js","node_modules/core-js/actual/array/find.js","node_modules/core-js/actual/array/from.js","node_modules/core-js/actual/array/includes.js","node_modules/core-js/actual/map/index.js","node_modules/core-js/actual/object/assign.js","node_modules/core-js/actual/promise/finally.js","node_modules/core-js/actual/promise/index.js","node_modules/core-js/actual/set/index.js","node_modules/core-js/actual/symbol/index.js","node_modules/core-js/es/array/fill.js","node_modules/core-js/es/array/find-index.js","node_modules/core-js/es/array/find.js","node_modules/core-js/es/array/from.js","node_modules/core-js/es/array/includes.js","node_modules/core-js/es/map/index.js","node_modules/core-js/es/object/assign.js","node_modules/core-js/es/promise/finally.js","node_modules/core-js/es/promise/index.js","node_modules/core-js/es/set/index.js","node_modules/core-js/es/symbol/index.js","node_modules/core-js/full/array/fill.js","node_modules/core-js/full/array/find-index.js","node_modules/core-js/full/array/find.js","node_modules/core-js/full/array/from.js","node_modules/core-js/full/array/includes.js","node_modules/core-js/full/map/index.js","node_modules/core-js/full/object/assign.js","node_modules/core-js/full/promise/finally.js","node_modules/core-js/full/promise/index.js","node_modules/core-js/full/set/index.js","node_modules/core-js/full/symbol/index.js","node_modules/core-js/internals/a-callable.js","node_modules/core-js/internals/a-constructor.js","node_modules/core-js/internals/a-map.js","node_modules/core-js/internals/a-possible-prototype.js","node_modules/core-js/internals/a-set.js","node_modules/core-js/internals/add-to-unscopables.js","node_modules/core-js/internals/advance-string-index.js","node_modules/core-js/internals/an-instance.js","node_modules/core-js/internals/an-object.js","node_modules/core-js/internals/array-buffer-non-extensible.js","node_modules/core-js/internals/array-fill.js","node_modules/core-js/internals/array-from.js","node_modules/core-js/internals/array-includes.js","node_modules/core-js/internals/array-iteration.js","node_modules/core-js/internals/array-method-has-species-support.js","node_modules/core-js/internals/array-method-is-strict.js","node_modules/core-js/internals/array-slice-simple.js","node_modules/core-js/internals/array-slice.js","node_modules/core-js/internals/array-sort.js","node_modules/core-js/internals/array-species-constructor.js","node_modules/core-js/internals/array-species-create.js","node_modules/core-js/internals/call-with-safe-iteration-closing.js","node_modules/core-js/internals/check-correctness-of-iteration.js","node_modules/core-js/internals/classof-raw.js","node_modules/core-js/internals/classof.js","node_modules/core-js/internals/collection-from.js","node_modules/core-js/internals/collection-of.js","node_modules/core-js/internals/collection-strong.js","node_modules/core-js/internals/collection-weak.js","node_modules/core-js/internals/collection.js","node_modules/core-js/internals/copy-constructor-properties.js","node_modules/core-js/internals/correct-prototype-getter.js","node_modules/core-js/internals/create-iter-result-object.js","node_modules/core-js/internals/create-non-enumerable-property.js","node_modules/core-js/internals/create-property-descriptor.js","node_modules/core-js/internals/create-property.js","node_modules/core-js/internals/define-built-in-accessor.js","node_modules/core-js/internals/define-built-in.js","node_modules/core-js/internals/define-built-ins.js","node_modules/core-js/internals/define-global-property.js","node_modules/core-js/internals/delete-property-or-throw.js","node_modules/core-js/internals/descriptors.js","node_modules/core-js/internals/document-all.js","node_modules/core-js/internals/document-create-element.js","node_modules/core-js/internals/does-not-exceed-safe-integer.js","node_modules/core-js/internals/dom-iterables.js","node_modules/core-js/internals/dom-token-list-prototype.js","node_modules/core-js/internals/engine-ff-version.js","node_modules/core-js/internals/engine-is-browser.js","node_modules/core-js/internals/engine-is-deno.js","node_modules/core-js/internals/engine-is-ie-or-edge.js","node_modules/core-js/internals/engine-is-ios-pebble.js","node_modules/core-js/internals/engine-is-ios.js","node_modules/core-js/internals/engine-is-node.js","node_modules/core-js/internals/engine-is-webos-webkit.js","node_modules/core-js/internals/engine-user-agent.js","node_modules/core-js/internals/engine-v8-version.js","node_modules/core-js/internals/engine-webkit-version.js","node_modules/core-js/internals/entry-unbind.js","node_modules/core-js/internals/enum-bug-keys.js","node_modules/core-js/internals/error-stack-clear.js","node_modules/core-js/internals/error-stack-install.js","node_modules/core-js/internals/error-stack-installable.js","node_modules/core-js/internals/export.js","node_modules/core-js/internals/fails.js","node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","node_modules/core-js/internals/freezing.js","node_modules/core-js/internals/function-apply.js","node_modules/core-js/internals/function-bind-context.js","node_modules/core-js/internals/function-bind-native.js","node_modules/core-js/internals/function-bind.js","node_modules/core-js/internals/function-call.js","node_modules/core-js/internals/function-name.js","node_modules/core-js/internals/function-uncurry-this-accessor.js","node_modules/core-js/internals/function-uncurry-this-clause.js","node_modules/core-js/internals/function-uncurry-this.js","node_modules/core-js/internals/get-built-in.js","node_modules/core-js/internals/get-iterator-direct.js","node_modules/core-js/internals/get-iterator-method.js","node_modules/core-js/internals/get-iterator.js","node_modules/core-js/internals/get-json-replacer-function.js","node_modules/core-js/internals/get-method.js","node_modules/core-js/internals/get-set-record.js","node_modules/core-js/internals/get-substitution.js","node_modules/core-js/internals/global.js","node_modules/core-js/internals/has-own-property.js","node_modules/core-js/internals/hidden-keys.js","node_modules/core-js/internals/host-report-errors.js","node_modules/core-js/internals/html.js","node_modules/core-js/internals/ie8-dom-define.js","node_modules/core-js/internals/indexed-object.js","node_modules/core-js/internals/inherit-if-required.js","node_modules/core-js/internals/inspect-source.js","node_modules/core-js/internals/install-error-cause.js","node_modules/core-js/internals/internal-metadata.js","node_modules/core-js/internals/internal-state.js","node_modules/core-js/internals/is-array-iterator-method.js","node_modules/core-js/internals/is-array.js","node_modules/core-js/internals/is-callable.js","node_modules/core-js/internals/is-constructor.js","node_modules/core-js/internals/is-forced.js","node_modules/core-js/internals/is-integral-number.js","node_modules/core-js/internals/is-iterable.js","node_modules/core-js/internals/is-null-or-undefined.js","node_modules/core-js/internals/is-object.js","node_modules/core-js/internals/is-pure.js","node_modules/core-js/internals/is-regexp.js","node_modules/core-js/internals/is-symbol.js","node_modules/core-js/internals/iterate-simple.js","node_modules/core-js/internals/iterate.js","node_modules/core-js/internals/iterator-close.js","node_modules/core-js/internals/iterator-create-constructor.js","node_modules/core-js/internals/iterator-define.js","node_modules/core-js/internals/iterators-core.js","node_modules/core-js/internals/length-of-array-like.js","node_modules/core-js/internals/make-built-in.js","node_modules/core-js/internals/map-helpers.js","node_modules/core-js/internals/map-iterate.js","node_modules/core-js/internals/map-upsert.js","node_modules/core-js/internals/math-sign.js","node_modules/core-js/internals/math-trunc.js","node_modules/core-js/internals/microtask.js","node_modules/core-js/internals/new-promise-capability.js","node_modules/core-js/internals/normalize-string-argument.js","node_modules/core-js/internals/number-is-finite.js","node_modules/core-js/internals/object-assign.js","node_modules/core-js/internals/object-create.js","node_modules/core-js/internals/object-define-properties.js","node_modules/core-js/internals/object-define-property.js","node_modules/core-js/internals/object-get-own-property-descriptor.js","node_modules/core-js/internals/object-get-own-property-names-external.js","node_modules/core-js/internals/object-get-own-property-names.js","node_modules/core-js/internals/object-get-own-property-symbols.js","node_modules/core-js/internals/object-get-prototype-of.js","node_modules/core-js/internals/object-is-extensible.js","node_modules/core-js/internals/object-is-prototype-of.js","node_modules/core-js/internals/object-keys-internal.js","node_modules/core-js/internals/object-keys.js","node_modules/core-js/internals/object-property-is-enumerable.js","node_modules/core-js/internals/object-set-prototype-of.js","node_modules/core-js/internals/object-to-string.js","node_modules/core-js/internals/ordinary-to-primitive.js","node_modules/core-js/internals/own-keys.js","node_modules/core-js/internals/path.js","node_modules/core-js/internals/perform.js","node_modules/core-js/internals/promise-constructor-detection.js","node_modules/core-js/internals/promise-native-constructor.js","node_modules/core-js/internals/promise-resolve.js","node_modules/core-js/internals/promise-statics-incorrect-iteration.js","node_modules/core-js/internals/proxy-accessor.js","node_modules/core-js/internals/queue.js","node_modules/core-js/internals/regexp-exec-abstract.js","node_modules/core-js/internals/regexp-exec.js","node_modules/core-js/internals/regexp-flags.js","node_modules/core-js/internals/regexp-get-flags.js","node_modules/core-js/internals/regexp-sticky-helpers.js","node_modules/core-js/internals/regexp-unsupported-dot-all.js","node_modules/core-js/internals/regexp-unsupported-ncg.js","node_modules/core-js/internals/require-object-coercible.js","node_modules/core-js/internals/same-value-zero.js","node_modules/core-js/internals/set-clone.js","node_modules/core-js/internals/set-difference.js","node_modules/core-js/internals/set-helpers.js","node_modules/core-js/internals/set-intersection.js","node_modules/core-js/internals/set-is-disjoint-from.js","node_modules/core-js/internals/set-is-subset-of.js","node_modules/core-js/internals/set-is-superset-of.js","node_modules/core-js/internals/set-iterate.js","node_modules/core-js/internals/set-method-accept-set-like.js","node_modules/core-js/internals/set-size.js","node_modules/core-js/internals/set-species.js","node_modules/core-js/internals/set-symmetric-difference.js","node_modules/core-js/internals/set-to-string-tag.js","node_modules/core-js/internals/set-union.js","node_modules/core-js/internals/shared-key.js","node_modules/core-js/internals/shared-store.js","node_modules/core-js/internals/shared.js","node_modules/core-js/internals/species-constructor.js","node_modules/core-js/internals/string-multibyte.js","node_modules/core-js/internals/string-pad-webkit-bug.js","node_modules/core-js/internals/string-pad.js","node_modules/core-js/internals/string-repeat.js","node_modules/core-js/internals/string-trim-end.js","node_modules/core-js/internals/string-trim-forced.js","node_modules/core-js/internals/string-trim-start.js","node_modules/core-js/internals/string-trim.js","node_modules/core-js/internals/symbol-constructor-detection.js","node_modules/core-js/internals/symbol-define-to-primitive.js","node_modules/core-js/internals/symbol-is-registered.js","node_modules/core-js/internals/symbol-is-well-known.js","node_modules/core-js/internals/symbol-registry-detection.js","node_modules/core-js/internals/task.js","node_modules/core-js/internals/this-number-value.js","node_modules/core-js/internals/to-absolute-index.js","node_modules/core-js/internals/to-indexed-object.js","node_modules/core-js/internals/to-integer-or-infinity.js","node_modules/core-js/internals/to-length.js","node_modules/core-js/internals/to-object.js","node_modules/core-js/internals/to-primitive.js","node_modules/core-js/internals/to-property-key.js","node_modules/core-js/internals/to-set-like.js","node_modules/core-js/internals/to-string-tag-support.js","node_modules/core-js/internals/to-string.js","node_modules/core-js/internals/try-to-string.js","node_modules/core-js/internals/uid.js","node_modules/core-js/internals/use-symbol-as-uid.js","node_modules/core-js/internals/v8-prototype-define-bug.js","node_modules/core-js/internals/validate-arguments-length.js","node_modules/core-js/internals/weak-map-basic-detection.js","node_modules/core-js/internals/well-known-symbol-define.js","node_modules/core-js/internals/well-known-symbol-wrapped.js","node_modules/core-js/internals/well-known-symbol.js","node_modules/core-js/internals/whitespaces.js","node_modules/core-js/modules/es.aggregate-error.constructor.js","node_modules/core-js/modules/es.aggregate-error.js","node_modules/core-js/modules/es.array.concat.js","node_modules/core-js/modules/es.array.fill.js","node_modules/core-js/modules/es.array.filter.js","node_modules/core-js/modules/es.array.find-index.js","node_modules/core-js/modules/es.array.find.js","node_modules/core-js/modules/es.array.from.js","node_modules/core-js/modules/es.array.includes.js","node_modules/core-js/modules/es.array.iterator.js","node_modules/core-js/modules/es.array.join.js","node_modules/core-js/modules/es.array.map.js","node_modules/core-js/modules/es.array.slice.js","node_modules/core-js/modules/es.array.sort.js","node_modules/core-js/modules/es.json.stringify.js","node_modules/core-js/modules/es.json.to-string-tag.js","node_modules/core-js/modules/es.map.constructor.js","node_modules/core-js/modules/es.map.js","node_modules/core-js/modules/es.math.sign.js","node_modules/core-js/modules/es.math.to-string-tag.js","node_modules/core-js/modules/es.math.trunc.js","node_modules/core-js/modules/es.number.constructor.js","node_modules/core-js/modules/es.number.is-finite.js","node_modules/core-js/modules/es.number.is-integer.js","node_modules/core-js/modules/es.number.is-nan.js","node_modules/core-js/modules/es.number.is-safe-integer.js","node_modules/core-js/modules/es.number.max-safe-integer.js","node_modules/core-js/modules/es.object.assign.js","node_modules/core-js/modules/es.object.freeze.js","node_modules/core-js/modules/es.object.get-own-property-descriptor.js","node_modules/core-js/modules/es.object.get-own-property-symbols.js","node_modules/core-js/modules/es.object.get-prototype-of.js","node_modules/core-js/modules/es.object.set-prototype-of.js","node_modules/core-js/modules/es.object.to-string.js","node_modules/core-js/modules/es.promise.all-settled.js","node_modules/core-js/modules/es.promise.all.js","node_modules/core-js/modules/es.promise.any.js","node_modules/core-js/modules/es.promise.catch.js","node_modules/core-js/modules/es.promise.constructor.js","node_modules/core-js/modules/es.promise.finally.js","node_modules/core-js/modules/es.promise.js","node_modules/core-js/modules/es.promise.race.js","node_modules/core-js/modules/es.promise.reject.js","node_modules/core-js/modules/es.promise.resolve.js","node_modules/core-js/modules/es.reflect.construct.js","node_modules/core-js/modules/es.reflect.to-string-tag.js","node_modules/core-js/modules/es.regexp.constructor.js","node_modules/core-js/modules/es.regexp.exec.js","node_modules/core-js/modules/es.regexp.flags.js","node_modules/core-js/modules/es.regexp.to-string.js","node_modules/core-js/modules/es.set.constructor.js","node_modules/core-js/modules/es.set.js","node_modules/core-js/modules/es.string.iterator.js","node_modules/core-js/modules/es.string.pad-end.js","node_modules/core-js/modules/es.string.pad-start.js","node_modules/core-js/modules/es.string.repeat.js","node_modules/core-js/modules/es.string.replace.js","node_modules/core-js/modules/es.string.split.js","node_modules/core-js/modules/es.string.trim-end.js","node_modules/core-js/modules/es.string.trim-left.js","node_modules/core-js/modules/es.string.trim-right.js","node_modules/core-js/modules/es.string.trim-start.js","node_modules/core-js/modules/es.symbol.async-iterator.js","node_modules/core-js/modules/es.symbol.constructor.js","node_modules/core-js/modules/es.symbol.description.js","node_modules/core-js/modules/es.symbol.for.js","node_modules/core-js/modules/es.symbol.has-instance.js","node_modules/core-js/modules/es.symbol.is-concat-spreadable.js","node_modules/core-js/modules/es.symbol.iterator.js","node_modules/core-js/modules/es.symbol.js","node_modules/core-js/modules/es.symbol.key-for.js","node_modules/core-js/modules/es.symbol.match-all.js","node_modules/core-js/modules/es.symbol.match.js","node_modules/core-js/modules/es.symbol.replace.js","node_modules/core-js/modules/es.symbol.search.js","node_modules/core-js/modules/es.symbol.species.js","node_modules/core-js/modules/es.symbol.split.js","node_modules/core-js/modules/es.symbol.to-primitive.js","node_modules/core-js/modules/es.symbol.to-string-tag.js","node_modules/core-js/modules/es.symbol.unscopables.js","node_modules/core-js/modules/es.weak-map.constructor.js","node_modules/core-js/modules/es.weak-map.js","node_modules/core-js/modules/esnext.aggregate-error.js","node_modules/core-js/modules/esnext.function.metadata.js","node_modules/core-js/modules/esnext.map.delete-all.js","node_modules/core-js/modules/esnext.map.emplace.js","node_modules/core-js/modules/esnext.map.every.js","node_modules/core-js/modules/esnext.map.filter.js","node_modules/core-js/modules/esnext.map.find-key.js","node_modules/core-js/modules/esnext.map.find.js","node_modules/core-js/modules/esnext.map.from.js","node_modules/core-js/modules/esnext.map.group-by.js","node_modules/core-js/modules/esnext.map.includes.js","node_modules/core-js/modules/esnext.map.key-by.js","node_modules/core-js/modules/esnext.map.key-of.js","node_modules/core-js/modules/esnext.map.map-keys.js","node_modules/core-js/modules/esnext.map.map-values.js","node_modules/core-js/modules/esnext.map.merge.js","node_modules/core-js/modules/esnext.map.of.js","node_modules/core-js/modules/esnext.map.reduce.js","node_modules/core-js/modules/esnext.map.some.js","node_modules/core-js/modules/esnext.map.update-or-insert.js","node_modules/core-js/modules/esnext.map.update.js","node_modules/core-js/modules/esnext.map.upsert.js","node_modules/core-js/modules/esnext.promise.all-settled.js","node_modules/core-js/modules/esnext.promise.any.js","node_modules/core-js/modules/esnext.promise.try.js","node_modules/core-js/modules/esnext.promise.with-resolvers.js","node_modules/core-js/modules/esnext.set.add-all.js","node_modules/core-js/modules/esnext.set.delete-all.js","node_modules/core-js/modules/esnext.set.difference.js","node_modules/core-js/modules/esnext.set.difference.v2.js","node_modules/core-js/modules/esnext.set.every.js","node_modules/core-js/modules/esnext.set.filter.js","node_modules/core-js/modules/esnext.set.find.js","node_modules/core-js/modules/esnext.set.from.js","node_modules/core-js/modules/esnext.set.intersection.js","node_modules/core-js/modules/esnext.set.intersection.v2.js","node_modules/core-js/modules/esnext.set.is-disjoint-from.js","node_modules/core-js/modules/esnext.set.is-disjoint-from.v2.js","node_modules/core-js/modules/esnext.set.is-subset-of.js","node_modules/core-js/modules/esnext.set.is-subset-of.v2.js","node_modules/core-js/modules/esnext.set.is-superset-of.js","node_modules/core-js/modules/esnext.set.is-superset-of.v2.js","node_modules/core-js/modules/esnext.set.join.js","node_modules/core-js/modules/esnext.set.map.js","node_modules/core-js/modules/esnext.set.of.js","node_modules/core-js/modules/esnext.set.reduce.js","node_modules/core-js/modules/esnext.set.some.js","node_modules/core-js/modules/esnext.set.symmetric-difference.js","node_modules/core-js/modules/esnext.set.symmetric-difference.v2.js","node_modules/core-js/modules/esnext.set.union.js","node_modules/core-js/modules/esnext.set.union.v2.js","node_modules/core-js/modules/esnext.symbol.async-dispose.js","node_modules/core-js/modules/esnext.symbol.dispose.js","node_modules/core-js/modules/esnext.symbol.is-registered-symbol.js","node_modules/core-js/modules/esnext.symbol.is-registered.js","node_modules/core-js/modules/esnext.symbol.is-well-known-symbol.js","node_modules/core-js/modules/esnext.symbol.is-well-known.js","node_modules/core-js/modules/esnext.symbol.matcher.js","node_modules/core-js/modules/esnext.symbol.metadata-key.js","node_modules/core-js/modules/esnext.symbol.metadata.js","node_modules/core-js/modules/esnext.symbol.observable.js","node_modules/core-js/modules/esnext.symbol.pattern-match.js","node_modules/core-js/modules/esnext.symbol.replace-all.js","node_modules/core-js/modules/web.dom-collections.iterator.js","node_modules/core-js/stable/array/fill.js","node_modules/core-js/stable/array/find-index.js","node_modules/core-js/stable/array/find.js","node_modules/core-js/stable/array/from.js","node_modules/core-js/stable/array/includes.js","node_modules/core-js/stable/map/index.js","node_modules/core-js/stable/object/assign.js","node_modules/core-js/stable/promise/finally.js","node_modules/core-js/stable/promise/index.js","node_modules/core-js/stable/set/index.js","node_modules/core-js/stable/symbol/index.js","node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","node_modules/memoize-one/dist/memoize-one.cjs.js","node_modules/object-assign/index.js","node_modules/process/browser.js","node_modules/prop-types/checkPropTypes.js","node_modules/prop-types/factoryWithThrowingShims.js","node_modules/prop-types/factoryWithTypeCheckers.js","node_modules/prop-types/lib/ReactPropTypesSecret.js","node_modules/prop-types/lib/has.js","node_modules/ramda-adjunct/lib/Y.js","node_modules/ramda-adjunct/lib/allEqual.js","node_modules/ramda-adjunct/lib/allEqualTo.js","node_modules/ramda-adjunct/lib/allIdentical.js","node_modules/ramda-adjunct/lib/allIdenticalTo.js","node_modules/ramda-adjunct/lib/allP.js","node_modules/ramda-adjunct/lib/allSettledP.js","node_modules/ramda-adjunct/lib/allUnique.js","node_modules/ramda-adjunct/lib/anyP.js","node_modules/ramda-adjunct/lib/appendFlipped.js","node_modules/ramda-adjunct/lib/argsPass.js","node_modules/ramda-adjunct/lib/async.js","node_modules/ramda-adjunct/lib/cata.js","node_modules/ramda-adjunct/lib/ceil.js","node_modules/ramda-adjunct/lib/compact.js","node_modules/ramda-adjunct/lib/concatAll.js","node_modules/ramda-adjunct/lib/concatRight.js","node_modules/ramda-adjunct/lib/contained.js","node_modules/ramda-adjunct/lib/curryRight.js","node_modules/ramda-adjunct/lib/curryRightN.js","node_modules/ramda-adjunct/lib/defaultWhen.js","node_modules/ramda-adjunct/lib/delayP.js","node_modules/ramda-adjunct/lib/dispatch.js","node_modules/ramda-adjunct/lib/divideNum.js","node_modules/ramda-adjunct/lib/dropArgs.js","node_modules/ramda-adjunct/lib/ensureArray.js","node_modules/ramda-adjunct/lib/escapeRegExp.js","node_modules/ramda-adjunct/lib/fantasy-land/Identity.js","node_modules/ramda-adjunct/lib/fantasy-land/mapping.js","node_modules/ramda-adjunct/lib/fantasy-land/traits.js","node_modules/ramda-adjunct/lib/fantasy-land/util.js","node_modules/ramda-adjunct/lib/flattenDepth.js","node_modules/ramda-adjunct/lib/flattenPath.js","node_modules/ramda-adjunct/lib/flattenProp.js","node_modules/ramda-adjunct/lib/floor.js","node_modules/ramda-adjunct/lib/hasPath.js","node_modules/ramda-adjunct/lib/inRange.js","node_modules/ramda-adjunct/lib/internal/ap.js","node_modules/ramda-adjunct/lib/internal/compareLength.js","node_modules/ramda-adjunct/lib/internal/isOfTypeObject.js","node_modules/ramda-adjunct/lib/internal/polyfills/Array.from.js","node_modules/ramda-adjunct/lib/internal/polyfills/Math.sign.js","node_modules/ramda-adjunct/lib/internal/polyfills/Math.trunc.js","node_modules/ramda-adjunct/lib/internal/polyfills/Number.MAX_SAFE_INTEGER.js","node_modules/ramda-adjunct/lib/internal/polyfills/Number.isFinite.js","node_modules/ramda-adjunct/lib/internal/polyfills/Number.isInteger.js","node_modules/ramda-adjunct/lib/internal/polyfills/Number.isNaN.js","node_modules/ramda-adjunct/lib/internal/polyfills/Number.isSafeInteger.js","node_modules/ramda-adjunct/lib/internal/polyfills/Promise.allSettled.js","node_modules/ramda-adjunct/lib/internal/polyfills/Promise.any.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.padEnd.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.padStart.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.repeat.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.replaceAll.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.trimEnd.js","node_modules/ramda-adjunct/lib/internal/polyfills/String.trimStart.js","node_modules/ramda-adjunct/lib/isArray.js","node_modules/ramda-adjunct/lib/isArrayLike.js","node_modules/ramda-adjunct/lib/isAsyncFunction.js","node_modules/ramda-adjunct/lib/isBoolean.js","node_modules/ramda-adjunct/lib/isDate.js","node_modules/ramda-adjunct/lib/isEmptyArray.js","node_modules/ramda-adjunct/lib/isEmptyString.js","node_modules/ramda-adjunct/lib/isEven.js","node_modules/ramda-adjunct/lib/isFalse.js","node_modules/ramda-adjunct/lib/isFalsy.js","node_modules/ramda-adjunct/lib/isFinite.js","node_modules/ramda-adjunct/lib/isFloat.js","node_modules/ramda-adjunct/lib/isFunction.js","node_modules/ramda-adjunct/lib/isGeneratorFunction.js","node_modules/ramda-adjunct/lib/isInteger.js","node_modules/ramda-adjunct/lib/isIterable.js","node_modules/ramda-adjunct/lib/isMap.js","node_modules/ramda-adjunct/lib/isNaN.js","node_modules/ramda-adjunct/lib/isNegative.js","node_modules/ramda-adjunct/lib/isNegativeZero.js","node_modules/ramda-adjunct/lib/isNilOrEmpty.js","node_modules/ramda-adjunct/lib/isNonEmptyArray.js","node_modules/ramda-adjunct/lib/isNonEmptyString.js","node_modules/ramda-adjunct/lib/isNonNegative.js","node_modules/ramda-adjunct/lib/isNonPositive.js","node_modules/ramda-adjunct/lib/isNotArray.js","node_modules/ramda-adjunct/lib/isNotArrayLike.js","node_modules/ramda-adjunct/lib/isNotAsyncFunction.js","node_modules/ramda-adjunct/lib/isNotBoolean.js","node_modules/ramda-adjunct/lib/isNotDate.js","node_modules/ramda-adjunct/lib/isNotEmpty.js","node_modules/ramda-adjunct/lib/isNotFinite.js","node_modules/ramda-adjunct/lib/isNotFloat.js","node_modules/ramda-adjunct/lib/isNotFunction.js","node_modules/ramda-adjunct/lib/isNotGeneratorFunction.js","node_modules/ramda-adjunct/lib/isNotInteger.js","node_modules/ramda-adjunct/lib/isNotNaN.js","node_modules/ramda-adjunct/lib/isNotNil.js","node_modules/ramda-adjunct/lib/isNotNilOrEmpty.js","node_modules/ramda-adjunct/lib/isNotNull.js","node_modules/ramda-adjunct/lib/isNotNumber.js","node_modules/ramda-adjunct/lib/isNotObj.js","node_modules/ramda-adjunct/lib/isNotObjLike.js","node_modules/ramda-adjunct/lib/isNotPair.js","node_modules/ramda-adjunct/lib/isNotPlainObj.js","node_modules/ramda-adjunct/lib/isNotRegExp.js","node_modules/ramda-adjunct/lib/isNotString.js","node_modules/ramda-adjunct/lib/isNotUndefined.js","node_modules/ramda-adjunct/lib/isNotValidDate.js","node_modules/ramda-adjunct/lib/isNotValidNumber.js","node_modules/ramda-adjunct/lib/isNull.js","node_modules/ramda-adjunct/lib/isNumber.js","node_modules/ramda-adjunct/lib/isObj.js","node_modules/ramda-adjunct/lib/isObjLike.js","node_modules/ramda-adjunct/lib/isOdd.js","node_modules/ramda-adjunct/lib/isPair.js","node_modules/ramda-adjunct/lib/isPlainObj.js","node_modules/ramda-adjunct/lib/isPositive.js","node_modules/ramda-adjunct/lib/isPositiveZero.js","node_modules/ramda-adjunct/lib/isPromise.js","node_modules/ramda-adjunct/lib/isRegExp.js","node_modules/ramda-adjunct/lib/isSafeInteger.js","node_modules/ramda-adjunct/lib/isSet.js","node_modules/ramda-adjunct/lib/isSparseArray.js","node_modules/ramda-adjunct/lib/isString.js","node_modules/ramda-adjunct/lib/isSymbol.js","node_modules/ramda-adjunct/lib/isThenable.js","node_modules/ramda-adjunct/lib/isTrue.js","node_modules/ramda-adjunct/lib/isTruthy.js","node_modules/ramda-adjunct/lib/isUndefined.js","node_modules/ramda-adjunct/lib/isValidDate.js","node_modules/ramda-adjunct/lib/isValidNumber.js","node_modules/ramda-adjunct/lib/lastP.js","node_modules/ramda-adjunct/lib/lengthEq.js","node_modules/ramda-adjunct/lib/lengthGt.js","node_modules/ramda-adjunct/lib/lengthGte.js","node_modules/ramda-adjunct/lib/lengthLt.js","node_modules/ramda-adjunct/lib/lengthLte.js","node_modules/ramda-adjunct/lib/lengthNotEq.js","node_modules/ramda-adjunct/lib/lensEq.js","node_modules/ramda-adjunct/lib/lensIso.js","node_modules/ramda-adjunct/lib/lensNotEq.js","node_modules/ramda-adjunct/lib/lensNotSatisfy.js","node_modules/ramda-adjunct/lib/lensSatisfies.js","node_modules/ramda-adjunct/lib/lensTraverse.js","node_modules/ramda-adjunct/lib/liftF.js","node_modules/ramda-adjunct/lib/liftFN.js","node_modules/ramda-adjunct/lib/list.js","node_modules/ramda-adjunct/lib/mapIndexed.js","node_modules/ramda-adjunct/lib/mergePath.js","node_modules/ramda-adjunct/lib/mergePaths.js","node_modules/ramda-adjunct/lib/mergeProp.js","node_modules/ramda-adjunct/lib/mergeProps.js","node_modules/ramda-adjunct/lib/mergeRight.js","node_modules/ramda-adjunct/lib/move.js","node_modules/ramda-adjunct/lib/nand.js","node_modules/ramda-adjunct/lib/neither.js","node_modules/ramda-adjunct/lib/noneP.js","node_modules/ramda-adjunct/lib/nonePass.js","node_modules/ramda-adjunct/lib/noop.js","node_modules/ramda-adjunct/lib/nor.js","node_modules/ramda-adjunct/lib/notAllPass.js","node_modules/ramda-adjunct/lib/notAllUnique.js","node_modules/ramda-adjunct/lib/notBoth.js","node_modules/ramda-adjunct/lib/omitBy.js","node_modules/ramda-adjunct/lib/omitIndexes.js","node_modules/ramda-adjunct/lib/padCharsEnd.js","node_modules/ramda-adjunct/lib/padCharsStart.js","node_modules/ramda-adjunct/lib/padEnd.js","node_modules/ramda-adjunct/lib/padStart.js","node_modules/ramda-adjunct/lib/pathNotEq.js","node_modules/ramda-adjunct/lib/pathOrLazy.js","node_modules/ramda-adjunct/lib/paths.js","node_modules/ramda-adjunct/lib/pickIndexes.js","node_modules/ramda-adjunct/lib/propNotEq.js","node_modules/ramda-adjunct/lib/reduceIndexed.js","node_modules/ramda-adjunct/lib/reduceP.js","node_modules/ramda-adjunct/lib/reduceRightP.js","node_modules/ramda-adjunct/lib/rejectP.js","node_modules/ramda-adjunct/lib/renameKeys.js","node_modules/ramda-adjunct/lib/renameKeysWith.js","node_modules/ramda-adjunct/lib/repeatStr.js","node_modules/ramda-adjunct/lib/replaceAll.js","node_modules/ramda-adjunct/lib/resolveP.js","node_modules/ramda-adjunct/lib/round.js","node_modules/ramda-adjunct/lib/seq.js","node_modules/ramda-adjunct/lib/sign.js","node_modules/ramda-adjunct/lib/sliceFrom.js","node_modules/ramda-adjunct/lib/sliceTo.js","node_modules/ramda-adjunct/lib/spreadPath.js","node_modules/ramda-adjunct/lib/spreadProp.js","node_modules/ramda-adjunct/lib/stubArray.js","node_modules/ramda-adjunct/lib/stubNull.js","node_modules/ramda-adjunct/lib/stubObj.js","node_modules/ramda-adjunct/lib/stubString.js","node_modules/ramda-adjunct/lib/stubUndefined.js","node_modules/ramda-adjunct/lib/subtractNum.js","node_modules/ramda-adjunct/lib/thenP.js","node_modules/ramda-adjunct/lib/toArray.js","node_modules/ramda-adjunct/lib/trimCharsEnd.js","node_modules/ramda-adjunct/lib/trimCharsStart.js","node_modules/ramda-adjunct/lib/trimEnd.js","node_modules/ramda-adjunct/lib/trimStart.js","node_modules/ramda-adjunct/lib/trunc.js","node_modules/ramda-adjunct/lib/unzipObjWith.js","node_modules/ramda-adjunct/lib/viewOr.js","node_modules/ramda-adjunct/lib/weave.js","node_modules/ramda-adjunct/lib/weaveLazy.js","node_modules/ramda-adjunct/lib/zipObjWith.js","node_modules/ramda/src/F.js","node_modules/ramda/src/T.js","node_modules/ramda/src/__.js","node_modules/ramda/src/add.js","node_modules/ramda/src/addIndex.js","node_modules/ramda/src/adjust.js","node_modules/ramda/src/all.js","node_modules/ramda/src/allPass.js","node_modules/ramda/src/always.js","node_modules/ramda/src/and.js","node_modules/ramda/src/any.js","node_modules/ramda/src/anyPass.js","node_modules/ramda/src/ap.js","node_modules/ramda/src/aperture.js","node_modules/ramda/src/append.js","node_modules/ramda/src/apply.js","node_modules/ramda/src/applySpec.js","node_modules/ramda/src/applyTo.js","node_modules/ramda/src/ascend.js","node_modules/ramda/src/assoc.js","node_modules/ramda/src/assocPath.js","node_modules/ramda/src/binary.js","node_modules/ramda/src/bind.js","node_modules/ramda/src/both.js","node_modules/ramda/src/call.js","node_modules/ramda/src/chain.js","node_modules/ramda/src/clamp.js","node_modules/ramda/src/clone.js","node_modules/ramda/src/comparator.js","node_modules/ramda/src/complement.js","node_modules/ramda/src/compose.js","node_modules/ramda/src/composeK.js","node_modules/ramda/src/composeP.js","node_modules/ramda/src/composeWith.js","node_modules/ramda/src/concat.js","node_modules/ramda/src/cond.js","node_modules/ramda/src/construct.js","node_modules/ramda/src/constructN.js","node_modules/ramda/src/contains.js","node_modules/ramda/src/converge.js","node_modules/ramda/src/countBy.js","node_modules/ramda/src/curry.js","node_modules/ramda/src/curryN.js","node_modules/ramda/src/dec.js","node_modules/ramda/src/defaultTo.js","node_modules/ramda/src/descend.js","node_modules/ramda/src/difference.js","node_modules/ramda/src/differenceWith.js","node_modules/ramda/src/dissoc.js","node_modules/ramda/src/dissocPath.js","node_modules/ramda/src/divide.js","node_modules/ramda/src/drop.js","node_modules/ramda/src/dropLast.js","node_modules/ramda/src/dropLastWhile.js","node_modules/ramda/src/dropRepeats.js","node_modules/ramda/src/dropRepeatsWith.js","node_modules/ramda/src/dropWhile.js","node_modules/ramda/src/either.js","node_modules/ramda/src/empty.js","node_modules/ramda/src/endsWith.js","node_modules/ramda/src/eqBy.js","node_modules/ramda/src/eqProps.js","node_modules/ramda/src/equals.js","node_modules/ramda/src/evolve.js","node_modules/ramda/src/filter.js","node_modules/ramda/src/find.js","node_modules/ramda/src/findIndex.js","node_modules/ramda/src/findLast.js","node_modules/ramda/src/findLastIndex.js","node_modules/ramda/src/flatten.js","node_modules/ramda/src/flip.js","node_modules/ramda/src/forEach.js","node_modules/ramda/src/forEachObjIndexed.js","node_modules/ramda/src/fromPairs.js","node_modules/ramda/src/groupBy.js","node_modules/ramda/src/groupWith.js","node_modules/ramda/src/gt.js","node_modules/ramda/src/gte.js","node_modules/ramda/src/has.js","node_modules/ramda/src/hasIn.js","node_modules/ramda/src/hasPath.js","node_modules/ramda/src/head.js","node_modules/ramda/src/identical.js","node_modules/ramda/src/identity.js","node_modules/ramda/src/ifElse.js","node_modules/ramda/src/inc.js","node_modules/ramda/src/includes.js","node_modules/ramda/src/indexBy.js","node_modules/ramda/src/indexOf.js","node_modules/ramda/src/init.js","node_modules/ramda/src/innerJoin.js","node_modules/ramda/src/insert.js","node_modules/ramda/src/insertAll.js","node_modules/ramda/src/internal/_Set.js","node_modules/ramda/src/internal/_aperture.js","node_modules/ramda/src/internal/_arity.js","node_modules/ramda/src/internal/_arrayFromIterator.js","node_modules/ramda/src/internal/_assertPromise.js","node_modules/ramda/src/internal/_checkForMethod.js","node_modules/ramda/src/internal/_clone.js","node_modules/ramda/src/internal/_cloneRegExp.js","node_modules/ramda/src/internal/_complement.js","node_modules/ramda/src/internal/_concat.js","node_modules/ramda/src/internal/_createPartialApplicator.js","node_modules/ramda/src/internal/_curry1.js","node_modules/ramda/src/internal/_curry2.js","node_modules/ramda/src/internal/_curry3.js","node_modules/ramda/src/internal/_curryN.js","node_modules/ramda/src/internal/_dispatchable.js","node_modules/ramda/src/internal/_dropLast.js","node_modules/ramda/src/internal/_dropLastWhile.js","node_modules/ramda/src/internal/_equals.js","node_modules/ramda/src/internal/_filter.js","node_modules/ramda/src/internal/_flatCat.js","node_modules/ramda/src/internal/_forceReduced.js","node_modules/ramda/src/internal/_functionName.js","node_modules/ramda/src/internal/_has.js","node_modules/ramda/src/internal/_identity.js","node_modules/ramda/src/internal/_includes.js","node_modules/ramda/src/internal/_includesWith.js","node_modules/ramda/src/internal/_indexOf.js","node_modules/ramda/src/internal/_isArguments.js","node_modules/ramda/src/internal/_isArray.js","node_modules/ramda/src/internal/_isArrayLike.js","node_modules/ramda/src/internal/_isFunction.js","node_modules/ramda/src/internal/_isInteger.js","node_modules/ramda/src/internal/_isNumber.js","node_modules/ramda/src/internal/_isObject.js","node_modules/ramda/src/internal/_isPlaceholder.js","node_modules/ramda/src/internal/_isRegExp.js","node_modules/ramda/src/internal/_isString.js","node_modules/ramda/src/internal/_isTransformer.js","node_modules/ramda/src/internal/_makeFlat.js","node_modules/ramda/src/internal/_map.js","node_modules/ramda/src/internal/_objectAssign.js","node_modules/ramda/src/internal/_objectIs.js","node_modules/ramda/src/internal/_of.js","node_modules/ramda/src/internal/_pipe.js","node_modules/ramda/src/internal/_pipeP.js","node_modules/ramda/src/internal/_quote.js","node_modules/ramda/src/internal/_reduce.js","node_modules/ramda/src/internal/_reduced.js","node_modules/ramda/src/internal/_stepCat.js","node_modules/ramda/src/internal/_toISOString.js","node_modules/ramda/src/internal/_toString.js","node_modules/ramda/src/internal/_xall.js","node_modules/ramda/src/internal/_xany.js","node_modules/ramda/src/internal/_xaperture.js","node_modules/ramda/src/internal/_xchain.js","node_modules/ramda/src/internal/_xdrop.js","node_modules/ramda/src/internal/_xdropLast.js","node_modules/ramda/src/internal/_xdropLastWhile.js","node_modules/ramda/src/internal/_xdropRepeatsWith.js","node_modules/ramda/src/internal/_xdropWhile.js","node_modules/ramda/src/internal/_xfBase.js","node_modules/ramda/src/internal/_xfilter.js","node_modules/ramda/src/internal/_xfind.js","node_modules/ramda/src/internal/_xfindIndex.js","node_modules/ramda/src/internal/_xfindLast.js","node_modules/ramda/src/internal/_xfindLastIndex.js","node_modules/ramda/src/internal/_xmap.js","node_modules/ramda/src/internal/_xreduceBy.js","node_modules/ramda/src/internal/_xtake.js","node_modules/ramda/src/internal/_xtakeWhile.js","node_modules/ramda/src/internal/_xtap.js","node_modules/ramda/src/internal/_xwrap.js","node_modules/ramda/src/intersection.js","node_modules/ramda/src/intersperse.js","node_modules/ramda/src/into.js","node_modules/ramda/src/invert.js","node_modules/ramda/src/invertObj.js","node_modules/ramda/src/invoker.js","node_modules/ramda/src/is.js","node_modules/ramda/src/isEmpty.js","node_modules/ramda/src/isNil.js","node_modules/ramda/src/join.js","node_modules/ramda/src/juxt.js","node_modules/ramda/src/keys.js","node_modules/ramda/src/keysIn.js","node_modules/ramda/src/last.js","node_modules/ramda/src/lastIndexOf.js","node_modules/ramda/src/length.js","node_modules/ramda/src/lens.js","node_modules/ramda/src/lensIndex.js","node_modules/ramda/src/lensPath.js","node_modules/ramda/src/lensProp.js","node_modules/ramda/src/lift.js","node_modules/ramda/src/liftN.js","node_modules/ramda/src/lt.js","node_modules/ramda/src/lte.js","node_modules/ramda/src/map.js","node_modules/ramda/src/mapAccum.js","node_modules/ramda/src/mapAccumRight.js","node_modules/ramda/src/mapObjIndexed.js","node_modules/ramda/src/match.js","node_modules/ramda/src/mathMod.js","node_modules/ramda/src/max.js","node_modules/ramda/src/maxBy.js","node_modules/ramda/src/mean.js","node_modules/ramda/src/median.js","node_modules/ramda/src/memoizeWith.js","node_modules/ramda/src/merge.js","node_modules/ramda/src/mergeAll.js","node_modules/ramda/src/mergeDeepLeft.js","node_modules/ramda/src/mergeDeepRight.js","node_modules/ramda/src/mergeDeepWith.js","node_modules/ramda/src/mergeDeepWithKey.js","node_modules/ramda/src/mergeLeft.js","node_modules/ramda/src/mergeRight.js","node_modules/ramda/src/mergeWith.js","node_modules/ramda/src/mergeWithKey.js","node_modules/ramda/src/min.js","node_modules/ramda/src/minBy.js","node_modules/ramda/src/modulo.js","node_modules/ramda/src/move.js","node_modules/ramda/src/multiply.js","node_modules/ramda/src/nAry.js","node_modules/ramda/src/negate.js","node_modules/ramda/src/none.js","node_modules/ramda/src/not.js","node_modules/ramda/src/nth.js","node_modules/ramda/src/nthArg.js","node_modules/ramda/src/o.js","node_modules/ramda/src/objOf.js","node_modules/ramda/src/of.js","node_modules/ramda/src/omit.js","node_modules/ramda/src/once.js","node_modules/ramda/src/or.js","node_modules/ramda/src/otherwise.js","node_modules/ramda/src/over.js","node_modules/ramda/src/pair.js","node_modules/ramda/src/partial.js","node_modules/ramda/src/partialRight.js","node_modules/ramda/src/partition.js","node_modules/ramda/src/path.js","node_modules/ramda/src/pathEq.js","node_modules/ramda/src/pathOr.js","node_modules/ramda/src/pathSatisfies.js","node_modules/ramda/src/pick.js","node_modules/ramda/src/pickAll.js","node_modules/ramda/src/pickBy.js","node_modules/ramda/src/pipe.js","node_modules/ramda/src/pipeK.js","node_modules/ramda/src/pipeP.js","node_modules/ramda/src/pipeWith.js","node_modules/ramda/src/pluck.js","node_modules/ramda/src/prepend.js","node_modules/ramda/src/product.js","node_modules/ramda/src/project.js","node_modules/ramda/src/prop.js","node_modules/ramda/src/propEq.js","node_modules/ramda/src/propIs.js","node_modules/ramda/src/propOr.js","node_modules/ramda/src/propSatisfies.js","node_modules/ramda/src/props.js","node_modules/ramda/src/range.js","node_modules/ramda/src/reduce.js","node_modules/ramda/src/reduceBy.js","node_modules/ramda/src/reduceRight.js","node_modules/ramda/src/reduceWhile.js","node_modules/ramda/src/reduced.js","node_modules/ramda/src/reject.js","node_modules/ramda/src/remove.js","node_modules/ramda/src/repeat.js","node_modules/ramda/src/replace.js","node_modules/ramda/src/reverse.js","node_modules/ramda/src/scan.js","node_modules/ramda/src/sequence.js","node_modules/ramda/src/set.js","node_modules/ramda/src/slice.js","node_modules/ramda/src/sort.js","node_modules/ramda/src/sortBy.js","node_modules/ramda/src/sortWith.js","node_modules/ramda/src/split.js","node_modules/ramda/src/splitAt.js","node_modules/ramda/src/splitEvery.js","node_modules/ramda/src/splitWhen.js","node_modules/ramda/src/startsWith.js","node_modules/ramda/src/subtract.js","node_modules/ramda/src/sum.js","node_modules/ramda/src/symmetricDifference.js","node_modules/ramda/src/symmetricDifferenceWith.js","node_modules/ramda/src/tail.js","node_modules/ramda/src/take.js","node_modules/ramda/src/takeLast.js","node_modules/ramda/src/takeLastWhile.js","node_modules/ramda/src/takeWhile.js","node_modules/ramda/src/tap.js","node_modules/ramda/src/test.js","node_modules/ramda/src/then.js","node_modules/ramda/src/thunkify.js","node_modules/ramda/src/times.js","node_modules/ramda/src/toLower.js","node_modules/ramda/src/toPairs.js","node_modules/ramda/src/toPairsIn.js","node_modules/ramda/src/toString.js","node_modules/ramda/src/toUpper.js","node_modules/ramda/src/transduce.js","node_modules/ramda/src/transpose.js","node_modules/ramda/src/traverse.js","node_modules/ramda/src/trim.js","node_modules/ramda/src/tryCatch.js","node_modules/ramda/src/type.js","node_modules/ramda/src/unapply.js","node_modules/ramda/src/unary.js","node_modules/ramda/src/uncurryN.js","node_modules/ramda/src/unfold.js","node_modules/ramda/src/union.js","node_modules/ramda/src/unionWith.js","node_modules/ramda/src/uniq.js","node_modules/ramda/src/uniqBy.js","node_modules/ramda/src/uniqWith.js","node_modules/ramda/src/unless.js","node_modules/ramda/src/unnest.js","node_modules/ramda/src/until.js","node_modules/ramda/src/update.js","node_modules/ramda/src/useWith.js","node_modules/ramda/src/values.js","node_modules/ramda/src/valuesIn.js","node_modules/ramda/src/view.js","node_modules/ramda/src/when.js","node_modules/ramda/src/where.js","node_modules/ramda/src/whereEq.js","node_modules/ramda/src/without.js","node_modules/ramda/src/xprod.js","node_modules/ramda/src/zip.js","node_modules/ramda/src/zipObj.js","node_modules/ramda/src/zipWith.js","node_modules/react-dom/cjs/react-dom.development.js","node_modules/react-dom/cjs/react-dom.production.min.js","node_modules/react-is/cjs/react-is.development.js","node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-is/index.js","node_modules/react-redux/lib/components/Context.js","node_modules/react-redux/lib/components/Provider.js","node_modules/react-redux/lib/components/connect.js","node_modules/react-redux/lib/connect/invalidArgFactory.js","node_modules/react-redux/lib/connect/mapDispatchToProps.js","node_modules/react-redux/lib/connect/mapStateToProps.js","node_modules/react-redux/lib/connect/mergeProps.js","node_modules/react-redux/lib/connect/selectorFactory.js","node_modules/react-redux/lib/connect/verifySubselectors.js","node_modules/react-redux/lib/connect/wrapMapToProps.js","node_modules/react-redux/lib/exports.js","node_modules/react-redux/lib/hooks/useDispatch.js","node_modules/react-redux/lib/hooks/useReduxContext.js","node_modules/react-redux/lib/hooks/useSelector.js","node_modules/react-redux/lib/hooks/useStore.js","node_modules/react-redux/lib/utils/Subscription.js","node_modules/react-redux/lib/utils/batch.js","node_modules/react-redux/lib/utils/bindActionCreators.js","node_modules/react-redux/lib/utils/isPlainObject.js","node_modules/react-redux/lib/utils/reactBatchedUpdates.js","node_modules/react-redux/lib/utils/shallowEqual.js","node_modules/react-redux/lib/utils/useIsomorphicLayoutEffect.js","node_modules/react-redux/lib/utils/useSyncExternalStore.js","node_modules/react-redux/lib/utils/verifyPlainObject.js","node_modules/react-redux/lib/utils/warning.js","node_modules/react-redux/node_modules/react-is/cjs/react-is.development.js","node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","node_modules/react-redux/node_modules/react-is/index.js","node_modules/react-select/dist/Select-a02d53be.cjs.dev.js","node_modules/react-select/dist/Select-e9ec2c9d.cjs.prod.js","node_modules/react-select/dist/index-7802bc67.cjs.prod.js","node_modules/react-select/dist/index-b678006b.cjs.dev.js","node_modules/react-select/dist/react-select.cjs.dev.js","node_modules/react-select/dist/react-select.cjs.prod.js","node_modules/react-select/dist/useStateManager-7748b351.cjs.dev.js","node_modules/react-select/dist/useStateManager-ce23061c.cjs.prod.js","node_modules/react-select/node_modules/@emotion/cache/dist/emotion-cache.browser.cjs.js","node_modules/react-select/node_modules/@emotion/sheet/dist/emotion-sheet.browser.cjs.js","node_modules/react/cjs/react.development.js","node_modules/react/cjs/react.production.min.js","node_modules/scheduler/cjs/scheduler-tracing.development.js","node_modules/scheduler/cjs/scheduler-tracing.production.min.js","node_modules/scheduler/cjs/scheduler.development.js","node_modules/scheduler/cjs/scheduler.production.min.js","node_modules/scheduler/index.js","node_modules/scheduler/tracing.js","node_modules/stylis/src/Enum.js","node_modules/stylis/src/Utility.js","node_modules/stylis/src/Tokenizer.js","node_modules/stylis/src/Parser.js","node_modules/stylis/src/Prefixer.js","node_modules/stylis/src/Serializer.js","node_modules/stylis/src/Middleware.js","node_modules/symbol-observable/lib/index.js","node_modules/symbol-observable/lib/ponyfill.js","node_modules/tabbable/index.js","node_modules/urijs/src/IPv6.js","node_modules/urijs/src/SecondLevelDomains.js","node_modules/urijs/src/punycode.js","node_modules/use-debounce/lib/useDebounce.js","node_modules/use-debounce/lib/useDebouncedCallback.js","node_modules/use-debounce/lib/useThrottledCallback.js","node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.cjs.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js","node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","node_modules/use-sync-external-store/shim/index.js","node_modules/use-sync-external-store/shim/with-selector.js","node_modules/xtend/immutable.js","Chart.js","index.js","core-js/features/array/fill.js","core-js/features/array/find-index.js","core-js/features/array/find.js","core-js/features/array/from.js","core-js/features/array/includes.js","core-js/features/map/index.js","core-js/features/object/assign.js","core-js/features/promise/finally.js","core-js/features/promise/index.js","core-js/features/set/index.js","core-js/features/symbol","jquery.validate.js","jquery.js","node_modules/lodash.throttle/index.js","moment.js","picturefill.js","AnimateHeight.js","webpack://MediaQuery/webpack/universalModuleDefinition","webpack://MediaQuery/node_modules/css-mediaquery/index.js","webpack://MediaQuery/node_modules/hyphenate-style-name/index.js","webpack://MediaQuery/node_modules/matchmediaquery/index.js","webpack://MediaQuery/node_modules/object-assign/index.js","webpack://MediaQuery/node_modules/prop-types/checkPropTypes.js","webpack://MediaQuery/node_modules/prop-types/factoryWithTypeCheckers.js","webpack://MediaQuery/node_modules/prop-types/index.js","webpack://MediaQuery/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://MediaQuery/node_modules/prop-types/lib/has.js","webpack://MediaQuery/node_modules/react-is/cjs/react-is.development.js","webpack://MediaQuery/node_modules/react-is/index.js","webpack://MediaQuery/node_modules/shallow-equal/dist/index.esm.js","webpack://MediaQuery/src/Component.ts","webpack://MediaQuery/src/Context.ts","webpack://MediaQuery/src/index.ts","webpack://MediaQuery/src/mediaQuery.ts","webpack://MediaQuery/src/toQuery.ts","webpack://MediaQuery/src/useMediaQuery.ts","webpack:/MediaQuery/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack://MediaQuery/webpack/bootstrap","webpack:/MediaQuery/webpack/runtime/define property getters","webpack:/MediaQuery/webpack/runtime/hasOwnProperty shorthand","webpack:/MediaQuery/webpack/runtime/make namespace object","webpack://MediaQuery/webpack/startup","node_modules/react-select/dist/react-select.cjs.js","redux.js","node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","svg4everybody.js","URI.js","fetch.umd.js"],"names":["require","r","e","n","t","o","i","f","c","u","a","Error","code","p","exports","call","length","1","module","arr","len","arr2","Array","__esModule","2","isArray","3","arrayLikeToArray","./arrayLikeToArray.js","4","self","ReferenceError","5","instance","Constructor","TypeError","6","toPropertyKey","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","./toPropertyKey.js","7","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","result","Super","NewTarget","this","constructor","Reflect","construct","arguments","apply","./getPrototypeOf.js","./isNativeReflectConstruct.js","./possibleConstructorReturn.js","8","obj","value","9","_extends","assign","bind","source","hasOwnProperty","10","_getPrototypeOf","setPrototypeOf","__proto__","11","subClass","superClass","create","./setPrototypeOf.js","12","default","13","sham","Proxy","Boolean","valueOf","14","iter","Symbol","iterator","from","15","l","next","done","push","16","17","18","ownKeys","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","forEach","getOwnPropertyDescriptors","defineProperties","./defineProperty.js","19","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","indexOf","propertyIsEnumerable","./objectWithoutPropertiesLoose.js","20","sourceKeys","21","_typeof","assertThisInitialized","./assertThisInitialized.js","./typeof.js","22","_setPrototypeOf","23","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","./arrayWithHoles.js","./iterableToArrayLimit.js","./nonIterableRest.js","./unsupportedIterableToArray.js","24","strings","raw","slice","freeze","25","arrayWithoutHoles","iterableToArray","nonIterableSpread","./arrayWithoutHoles.js","./iterableToArray.js","./nonIterableSpread.js","26","input","hint","prim","toPrimitive","undefined","res","String","Number","27","arg","./toPrimitive.js","28","29","minLen","toString","name","test","30","fn","cache","31","_interopDefault","hoistNonReactStatics__default","targetComponent","sourceComponent","hoist-non-react-statics","32","33","React","createCache","weakMemoize","_isolatedHnrs_dist_emotionReact_isolatedHnrs","utils","serialize","useInsertionEffectWithFallbacks","_interopNamespace","k","d","get","React__namespace","createCache__default","weakMemoize__default","isBrowser","document","EmotionCacheContext","createContext","HTMLElement","CacheProvider","Provider","withEmotionCache","func","forwardRef","ref","useContext","createElement","ThemeContext","createCacheWithTheme","outerTheme","theme","getTheme","typePropName","Insertion","_ref","serialized","isStringTag","registerStyles","rules","useInsertionEffectAlwaysWithSyncFallback","insertStyles","_ref2","serializedNames","dangerouslySetInnerHTML","__html","nonce","sheet","Emotion$1","cssProp","css","registered","WrappedComponent","registeredStyles","className","getRegisteredStyles","serializeStyles","newProps","Fragment","Emotion","ThemeProvider","children","__unsafe_useEmotionCache","createEmotionProps","type","useTheme","withTheme","Component","componentName","displayName","render","WithTheme","../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.prod.js","@babel/runtime/helpers/extends","@emotion/cache","@emotion/serialize","@emotion/use-insertion-effect-with-fallbacks","@emotion/utils","@emotion/weak-memoize","react","34","process","env","NODE_ENV","mergedTheme","getLastPart","functionName","parts","split","internalReactFunctionNames","Set","labelPropName","labelFromStack","label","stackTrace","line","match","lines","exec","has","replace","getLabelFromStackTrace","stack","../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.dev.js","_process","35","global","emotionElement","jsx","args","argsLength","createElementArgArray","warnedAboutCssPropForGlobal","Global","console","error","styles","serializedStyles","shouldCache","compat","insert","sheetRef","useRef","useInsertionEffectWithLayoutFallback","container","speedy","isSpeedy","rehydrating","node","querySelector","tags","before","setAttribute","hydrate","current","flush","sheetRefCurrent","element","nextElementSibling","_len","_key","classnames","cls","toAdd","merge","rawClassName","serializedArr","map","join","ClassNames","hasRendered","content","cx","_len2","_key2","ele","isTestEnv","jest","vi","globalContext","globalThis","window","globalKey","warn","keyframes","insertable","anim","./emotion-element-48d2c2e4.cjs.dev.js","36","./emotion-react.cjs.dev.js","./emotion-react.cjs.prod.js","37","./emotion-element-4300ad44.cjs.prod.js","38","stylis","memoize","memoize__default","identifierWithPointTracking","begin","points","index","previous","character","peek","token","position","getRules","dealloc","parsed","delimit","toRules","alloc","fixedElements","WeakMap","parent","isImplicitRule","column","charCodeAt","set","parentRules","j","removeLabel","isIgnoringComment","isImportRule","nullifyElement","incorrectImportAlarm","isPrependedWithRegularRules","prefix","hash","WEBKIT","MOZ","MS","strlen","charat","indexof","getServerStylisCache","defaultStylisPlugins","callback","DECLARATION","KEYFRAMES","copy","RULESET","combine","options","ssrStyles","querySelectorAll","getAttribute","head","appendChild","stylisPlugins","_insert","inserted","nodesToHydrate","attrib","omnipresentPlugins","unsafePseudoClasses","commentContainer","unsafePseudoClass","createUnsafeSelectorsAlarm","currentSheet","finalizingPlugins","stringify","root","COMMENT","rulesheet","rule","serializer","middleware","concat","selector","compile","_finalizingPlugins","_serializer","serverStylisCache","StyleSheet","prepend","insertionPoint","@emotion/memoize","@emotion/sheet","39","./emotion-cache.cjs.dev.js","./emotion-cache.cjs.prod.js","40","41","str","h","42","./emotion-hash.cjs.dev.js","./emotion-hash.cjs.prod.js","43","44","45","./emotion-memoize.cjs.dev.js","./emotion-memoize.cjs.prod.js","46","47","hashString","unitless","hashString__default","unitless__default","ILLEGAL_ESCAPE_SEQUENCE_ERROR","UNDEFINED_AS_OBJECT_KEY_ERROR","hyphenateRegex","animationRegex","isCustomProperty","property","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","p1","p2","cursor","contentValuePattern","contentValues","oldProcessStyleValue","msPattern","hyphenPattern","hyphenatedCache","charAt","processed","_char","toUpperCase","noComponentSelectorMessage","handleInterpolation","mergedProps","interpolation","__emotion_styles","string","interpolated","_i","createStringFromObject","previousCursor","matched","replaced","fakeVarName","cached","sourceMapPattern","labelPattern","stringMode","sourceMap","lastIndex","identifierName","@emotion/hash","@emotion/unitless","48","./emotion-serialize.cjs.dev.js","./emotion-serialize.cjs.prod.js","49","50","_this","_insertTag","tag","nextSibling","firstChild","insertBefore","ctr","_proto","nodes","createTextNode","createStyleElement","_alreadyInsertedOrderInsensitiveRule","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","parentNode","removeChild","51","./emotion-sheet.cjs.dev.js","./emotion-sheet.cjs.prod.js","52","53","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","54","./emotion-unitless.cjs.dev.js","./emotion-unitless.cjs.prod.js","55","56","classNames","stylesForSSR","maybeStyles","57","./emotion-utils.cjs.dev.js","./emotion-utils.cjs.prod.js","58","59","ret","60","./emotion-weak-memoize.cjs.dev.js","./emotion-weak-memoize.cjs.prod.js","61","62","syncFallback","useInsertionEffect","useLayoutEffect","63","./emotion-use-insertion-effect-with-fallbacks.cjs.dev.js","./emotion-use-insertion-effect-with-fallbacks.cjs.prod.js","64","65","66","factory","define","amd","FloatingUICore","sides","alignments","placements","reduce","acc","side","min","Math","max","oppositeSideMap","left","right","bottom","top","oppositeAlignmentMap","start","end","clamp","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","includes","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","reference","floating","getOppositePlacement","getOppositeAlignmentPlacement","getPaddingObject","padding","expandPaddingObject","rectToClientRect","rect","y","x","width","height","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","async","detectOverflow","state","_await$platform$isEle","platform","elements","strategy","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","getClippingRect","isElement","contextElement","getDocumentElement","offsetParent","getOffsetParent","offsetScale","getScale","elementClientRect","convertOffsetParentRelativeRectToViewportRelativeRect","getSideOffsets","overflow","isAnySideFullyClipped","some","getBoundingRect","minX","minY","arrow","[object Object]","middlewareData","arrowDimensions","getDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","data","centerOffset","reset","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","allowedPlacements","autoAlignment","detectOverflowOptions","placements$1","getPlacementList","currentIndex","currentPlacement","alignmentSides","isRTL","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByMostSpace","v","sort","b","resetPlacement","every","computePosition","config","validMiddleware","getElementRects","statefulPlacement","resetCount","nextX","nextY","initialPlacement","flip","_middlewareData$arrow","_middlewareData$flip","mainAxis","checkMainAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","flipAlignment","isBasePlacement","oppositePlacement","getExpandedPlacements","direction","list","isStart","lr","rl","tb","bt","getSideList","getOppositeAxisPlacements","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$map$so","hide","offsets","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","inline","nativeClientRects","getClientRects","clientRects","sortedRects","groups","prevRect","getRectsByLine","fallback","resetRects","getBoundingClientRect","find","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","limitShift","mainAxisCoord","crossAxisCoord","rawOffset","computedOffset","limitMin","limitMax","_middlewareData$offse","_middlewareData$offse2","isOriginSide","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","shift","limiter","maxSide","limitedCoords","size","heightSide","widthSide","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","maximumClippingWidth","maximumClippingHeight","xMin","xMax","yMin","yMax","nextDimensions","67","FloatingUIDOM","core","round","floor","createCoords","getNodeName","isNode","nodeName","getWindow","_node$ownerDocument","ownerDocument","defaultView","documentElement","Node","Element","isHTMLElement","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","display","getComputedStyle","isTableElement","isContainingBlock","webkit","isWebKit","transform","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","getNodeScroll","scrollLeft","scrollTop","pageXOffset","pageYOffset","getParentNode","assignedSlot","host","getNearestOverflowAncestor","body","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","visualViewport","frameElement","getCssDimensions","parseFloat","hasOffset","offsetWidth","offsetHeight","shouldFallback","$","unwrapElement","domElement","isFinite","noOffsets","getVisualOffsets","offsetLeft","offsetTop","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","isFixed","floatingOffsetParent","shouldAddVisualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","paddingTop","getWindowScrollBarX","getClientRectFromClippingAncestor","clippingAncestor","html","clientWidth","clientHeight","visualViewportBased","getViewportRect","scroll","scrollWidth","scrollHeight","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsetRect","getTrueOffsetParent","polyfill","currentNode","getContainingBlock","clippingAncestors","cachedResult","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","_c","firstClippingAncestor","clippingRect","accRect","getOffsetParentFn","getDimensionsFn","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","ResizeObserver","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","addEventListener","passive","cleanupIo","onMove","timeoutId","io","cleanup","clearTimeout","disconnect","refresh","skip","threshold","rootMargin","isFirstUpdate","handleObserve","entries","ratio","intersectionRatio","setTimeout","observe","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","unobserve","cancelAnimationFrame","requestAnimationFrame","prevRefRect","frameLoop","nextRefRect","removeEventListener","Map","mergedOptions","platformWithCache","@floating-ui/core","68","../../stable/array/fill","69","../../stable/array/find-index","70","../../stable/array/find","71","../../stable/array/from","72","../../stable/array/includes","73","../../modules/esnext.map.group-by","../../stable/map","74","../../stable/object/assign","75","../../stable/promise/finally","76","../../modules/esnext.promise.with-resolvers","../../stable/promise","77","../../modules/esnext.set.difference.v2","../../modules/esnext.set.intersection.v2","../../modules/esnext.set.is-disjoint-from.v2","../../modules/esnext.set.is-subset-of.v2","../../modules/esnext.set.is-superset-of.v2","../../modules/esnext.set.symmetric-difference.v2","../../modules/esnext.set.union.v2","../../stable/set","78","../../modules/esnext.function.metadata","../../modules/esnext.symbol.async-dispose","../../modules/esnext.symbol.dispose","../../modules/esnext.symbol.metadata","../../stable/symbol","79","entryUnbind","../../internals/entry-unbind","../../modules/es.array.fill","80","../../modules/es.array.find-index","81","../../modules/es.array.find","82","path","../../internals/path","../../modules/es.array.from","../../modules/es.string.iterator","83","../../modules/es.array.includes","84","../../modules/es.array.iterator","../../modules/es.map","../../modules/es.object.to-string","85","../../modules/es.object.assign","86","../../modules/es.promise","../../modules/es.promise.finally","87","Promise","../../modules/es.aggregate-error","../../modules/es.promise.all-settled","../../modules/es.promise.any","88","../../modules/es.set","89","../../modules/es.array.concat","../../modules/es.json.to-string-tag","../../modules/es.math.to-string-tag","../../modules/es.reflect.to-string-tag","../../modules/es.symbol","../../modules/es.symbol.async-iterator","../../modules/es.symbol.description","../../modules/es.symbol.has-instance","../../modules/es.symbol.is-concat-spreadable","../../modules/es.symbol.iterator","../../modules/es.symbol.match","../../modules/es.symbol.match-all","../../modules/es.symbol.replace","../../modules/es.symbol.search","../../modules/es.symbol.species","../../modules/es.symbol.split","../../modules/es.symbol.to-primitive","../../modules/es.symbol.to-string-tag","../../modules/es.symbol.unscopables","90","../../actual/array/fill","91","../../actual/array/find-index","92","../../actual/array/find","93","../../actual/array/from","94","../../actual/array/includes","95","../../actual/map","../../modules/esnext.map.delete-all","../../modules/esnext.map.emplace","../../modules/esnext.map.every","../../modules/esnext.map.filter","../../modules/esnext.map.find","../../modules/esnext.map.find-key","../../modules/esnext.map.from","../../modules/esnext.map.includes","../../modules/esnext.map.key-by","../../modules/esnext.map.key-of","../../modules/esnext.map.map-keys","../../modules/esnext.map.map-values","../../modules/esnext.map.merge","../../modules/esnext.map.of","../../modules/esnext.map.reduce","../../modules/esnext.map.some","../../modules/esnext.map.update","../../modules/esnext.map.update-or-insert","../../modules/esnext.map.upsert","96","../../actual/object/assign","97","../../actual/promise/finally","98","../../actual/promise","../../modules/esnext.aggregate-error","../../modules/esnext.promise.all-settled","../../modules/esnext.promise.any","../../modules/esnext.promise.try","99","../../actual/set","../../modules/esnext.set.add-all","../../modules/esnext.set.delete-all","../../modules/esnext.set.difference","../../modules/esnext.set.every","../../modules/esnext.set.filter","../../modules/esnext.set.find","../../modules/esnext.set.from","../../modules/esnext.set.intersection","../../modules/esnext.set.is-disjoint-from","../../modules/esnext.set.is-subset-of","../../modules/esnext.set.is-superset-of","../../modules/esnext.set.join","../../modules/esnext.set.map","../../modules/esnext.set.of","../../modules/esnext.set.reduce","../../modules/esnext.set.some","../../modules/esnext.set.symmetric-difference","../../modules/esnext.set.union","100","../../actual/symbol","../../modules/esnext.symbol.is-registered","../../modules/esnext.symbol.is-registered-symbol","../../modules/esnext.symbol.is-well-known","../../modules/esnext.symbol.is-well-known-symbol","../../modules/esnext.symbol.matcher","../../modules/esnext.symbol.metadata-key","../../modules/esnext.symbol.observable","../../modules/esnext.symbol.pattern-match","../../modules/esnext.symbol.replace-all","101","isCallable","tryToString","$TypeError","argument","../internals/is-callable","../internals/try-to-string","102","isConstructor","../internals/is-constructor","103","it","../internals/map-helpers","104","$String","105","../internals/set-helpers","106","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","../internals/object-create","../internals/object-define-property","../internals/well-known-symbol","107","S","unicode","../internals/string-multibyte","108","isPrototypeOf","Prototype","../internals/object-is-prototype-of","109","isObject","../internals/is-object","110","fails","ArrayBuffer","buffer","isExtensible","../internals/fails","111","toObject","toAbsoluteIndex","lengthOfArrayLike","O","argumentsLength","endPos","../internals/length-of-array-like","../internals/to-absolute-index","../internals/to-object","112","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iteratorMethod","../internals/call-with-safe-iteration-closing","../internals/create-property","../internals/function-bind-context","../internals/function-call","../internals/get-iterator","../internals/get-iterator-method","../internals/is-array-iterator-method","113","toIndexedObject","createMethod","IS_INCLUDES","$this","fromIndex","../internals/to-indexed-object","114","uncurryThis","IndexedObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","that","specificCreate","boundFunction","findIndex","filterReject","../internals/array-species-create","../internals/function-uncurry-this","../internals/indexed-object","115","V8_VERSION","SPECIES","METHOD_NAME","array","foo","../internals/engine-v8-version","116","method","117","fin","118","119","arraySlice","mergeSort","comparefn","middle","insertionSort","llength","rlength","lindex","rindex","../internals/array-slice-simple","120","originalArray","C","../internals/is-array","121","arraySpeciesConstructor","../internals/array-species-constructor","122","anObject","iteratorClose","ENTRIES","../internals/an-object","../internals/iterator-close","123","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","return","SKIP_CLOSING","ITERATION_SUPPORT","object","124","stringSlice","125","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","$Object","CORRECT_ARGUMENTS","tryGet","callee","../internals/classof-raw","../internals/to-string-tag-support","126","aCallable","aConstructor","isNullOrUndefined","iterate","mapFn","nextItem","../internals/a-callable","../internals/a-constructor","../internals/is-null-or-undefined","../internals/iterate","127","../internals/array-slice","128","defineBuiltInAccessor","defineBuiltIns","anInstance","defineIterator","createIterResultObject","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","first","last","AS_ENTRIES","getInternalState","entry","getEntry","removed","clear","delete","prev","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","../internals/an-instance","../internals/create-iter-result-object","../internals/define-built-in-accessor","../internals/define-built-ins","../internals/descriptors","../internals/internal-metadata","../internals/internal-state","../internals/iterator-define","../internals/set-species","129","getWeakData","ArrayIterationModule","hasOwn","splice","id","uncaughtFrozenStore","frozen","UncaughtFrozenStore","findUncaughtFrozen","store","../internals/array-iteration","../internals/has-own-property","130","isForced","defineBuiltIn","InternalMetadataModule","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","uncurriedNativeMethod","enable","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","forced","../internals/check-correctness-of-iteration","../internals/define-built-in","../internals/export","../internals/global","../internals/inherit-if-required","../internals/is-forced","../internals/set-to-string-tag","131","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","../internals/object-get-own-property-descriptor","../internals/own-keys","132","F","133","134","createPropertyDescriptor","../internals/create-property-descriptor","135","bitmap","136","propertyKey","../internals/to-property-key","137","makeBuiltIn","getter","setter","../internals/make-built-in","138","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","../internals/define-global-property","139","src","140","141","P","142","143","documentAll","all","IS_HTMLDDA","144","EXISTS","145","146","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","147","classList","documentCreateElement","DOMTokenListPrototype","../internals/document-create-element","148","firefox","../internals/engine-user-agent","149","IS_DENO","IS_NODE","../internals/engine-is-deno","../internals/engine-is-node","150","Deno","version","151","UA","152","userAgent","Pebble","153","154","classof","155","156","navigator","157","versions","v8","158","159","CONSTRUCTOR","METHOD","160","161","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","162","createNonEnumerableProperty","clearErrorStack","ERROR_STACK_INSTALLABLE","captureStackTrace","../internals/create-non-enumerable-property","../internals/error-stack-clear","../internals/error-stack-installable","163","164","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","../internals/copy-constructor-properties","165","166","regexpExec","RegExpPrototype","RegExp","FORCED","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","methods","nativeMethod","regexp","arg2","forceStringMethod","$exec","../internals/function-uncurry-this-clause","../internals/regexp-exec","../modules/es.regexp.exec","167","preventExtensions","168","NATIVE_BIND","FunctionPrototype","Function","../internals/function-bind-native","169","170","171","$Function","factories","partArgs","172","173","getDescriptor","PROPER","CONFIGURABLE","174","175","176","uncurryThisWithBind","177","aFunction","namespace","178","179","getMethod","Iterators","../internals/classof","../internals/get-method","../internals/iterators","180","usingIterator","181","replacer","rawLength","keysLength","../internals/to-string","182","V","183","toIntegerOrInfinity","getIteratorDirect","INVALID_SIZE","$RangeError","RangeError","SetRecord","numSize","intSize","../internals/get-iterator-direct","../internals/to-integer-or-infinity","184","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","185","check","186","187","188","189","getBuiltIn","../internals/get-built-in","190","191","192","Wrapper","NewTargetPrototype","../internals/object-set-prototype-of","193","functionToString","inspectSource","../internals/shared-store","194","cause","195","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","uid","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","getOwnPropertyNames","onFreeze","../internals/freezing","../internals/hidden-keys","../internals/object-get-own-property-names","../internals/object-get-own-property-names-external","../internals/object-is-extensible","../internals/uid","196","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","metadata","facade","STATE","enforce","../internals/shared-key","../internals/weak-map-basic-detection","197","198","199","$documentAll","../internals/document-all","200","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","../internals/inspect-source","201","feature","detection","normalize","POLYFILL","NATIVE","202","isInteger","203","204","205","206","207","MATCH","isRegExp","208","USE_SYMBOL_AS_UID","$Symbol","../internals/use-symbol-as-uid","209","record","ITERATOR_INSTEAD_OF_RECORD","210","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","211","innerResult","innerError","212","IteratorPrototype","returnThis","IteratorConstructor","NAME","ENUMERABLE_NEXT","../internals/iterators-core","213","IS_PURE","FunctionName","createIteratorConstructor","IteratorsCore","PROPER_FUNCTION_NAME","CONFIGURABLE_FUNCTION_NAME","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","proto","../internals/function-name","../internals/is-pure","../internals/iterator-create-constructor","../internals/object-get-prototype-of","214","PrototypeOfArrayIteratorPrototype","arrayIterator","215","dup","216","toLength","../internals/to-length","217","enforceInternalState","CONFIGURABLE_LENGTH","TEMPLATE","arity","218","MapPrototype","remove","219","iterateSimple","MapHelpers","interruptible","../internals/iterate-simple","220","updateFn","insertFn","221","sign","222","ceil","trunc","223","notify","toggle","promise","then","macrotask","Queue","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","microtask","queue","domain","exit","enter","resolve","nextTick","characterData","../internals/engine-is-ios","../internals/engine-is-ios-pebble","../internals/engine-is-webos-webkit","../internals/queue","../internals/task","224","PromiseCapability","reject","$$resolve","$$reject","225","$default","226","globalIsFinite","227","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","symbol","alphabet","chr","T","../internals/object-get-own-property-symbols","../internals/object-keys","../internals/object-property-is-enumerable","228","activeXDocument","definePropertiesModule","enumBugKeys","IE_PROTO","EmptyConstructor","scriptTag","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","style","contentWindow","open","Properties","../internals/enum-bug-keys","../internals/html","../internals/object-define-properties","229","V8_PROTOTYPE_DEFINE_BUG","../internals/v8-prototype-define-bug","230","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","../internals/ie8-dom-define","231","232","$getOwnPropertyNames","windowNames","getWindowNames","233","internalObjectKeys","../internals/object-keys-internal","234","235","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","../internals/correct-prototype-getter","236","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","../internals/array-buffer-non-extensible","237","238","names","../internals/array-includes","239","240","$propertyIsEnumerable","NASHORN_BUG","241","uncurryThisAccessor","aPossiblePrototype","CORRECT_SETTER","../internals/a-possible-prototype","../internals/function-uncurry-this-accessor","242","243","pref","val","244","245","246","247","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","REJECTION_EVENT","../internals/engine-is-browser","../internals/promise-native-constructor","248","249","newPromiseCapability","promiseCapability","../internals/new-promise-capability","250","../internals/promise-constructor-detection","251","Target","Source","252","tail","item","253","R","254","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","sticky","charsAdded","strCopy","multiline","../internals/regexp-flags","../internals/regexp-sticky-helpers","../internals/regexp-unsupported-dot-all","../internals/regexp-unsupported-ncg","../internals/shared","255","hasIndices","ignoreCase","dotAll","unicodeSets","256","regExpFlags","257","$RegExp","MISSED_STICKY","258","259","260","261","262","SetHelpers","../internals/set-iterate","263","aSet","clone","getSetRecord","iterateSet","other","otherRec","../internals/a-set","../internals/get-set-record","../internals/set-clone","../internals/set-size","264","SetPrototype","265","266","267","268","269","270","createSetLike","error2","271","272","273","keysIter","274","TAG","275","276","277","SHARED","278","mode","copyright","license","279","defaultConstructor","280","requireObjectCoercible","CONVERT_TO_STRING","pos","second","codeAt","../internals/require-object-coercible","281","282","$repeat","repeat","IS_END","maxLength","fillString","fillLen","stringFiller","intMaxLength","stringLength","fillStr","../internals/string-repeat","283","count","Infinity","284","$trimEnd","forcedStringTrimMethod","trimEnd","../internals/string-trim","../internals/string-trim-forced","285","whitespaces","../internals/whitespaces","286","$trimStart","trimStart","287","ltrim","rtrim","trim","288","289","SymbolPrototype","TO_PRIMITIVE","290","keyFor","thisSymbolValue","isRegisteredSymbol","291","isSymbol","$isWellKnownSymbol","isWellKnownSymbol","WellKnownSymbolsStore","symbolKeys","symbolKeysLength","symbolKey","../internals/is-symbol","292","NATIVE_SYMBOL","../internals/symbol-constructor-detection","293","$location","defer","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","ONREADYSTATECHANGE","location","run","runner","eventListener","event","globalPostMessageDefer","postMessage","protocol","handler","now","port2","port1","onmessage","importScripts","../internals/function-apply","../internals/validate-arguments-length","294","295","integer","296","297","number","../internals/math-trunc","298","299","300","ordinaryToPrimitive","exoticToPrim","../internals/ordinary-to-primitive","301","../internals/to-primitive","302","isIterable","isSetLike","../internals/is-iterable","303","304","305","306","postfix","random","307","308","309","passed","required","310","311","wrappedWellKnownSymbolModule","../internals/path","../internals/well-known-symbol-wrapped","312","313","createWellKnownSymbol","withoutSetter","314","315","installErrorCause","installErrorStack","normalizeStringArgument","$AggregateError","errors","message","isInstance","AggregateErrorPrototype","errorsArray","AggregateError","../internals/error-stack-install","../internals/install-error-cause","../internals/normalize-string-argument","316","../modules/es.aggregate-error.constructor","317","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","isConcatSpreadable","spreadable","E","../internals/array-method-has-species-support","../internals/does-not-exceed-safe-integer","318","fill","addToUnscopables","../internals/add-to-unscopables","../internals/array-fill","319","$filter","320","$findIndex","FIND_INDEX","SKIPS_HOLES","321","$find","FIND","322","../internals/array-from","323","$includes","324","ARRAY_ITERATOR","Arguments","325","arrayMethodIsStrict","nativeJoin","separator","../internals/array-method-is-strict","326","$map","327","nativeSlice","HAS_SPECIES_SUPPORT","328","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","fromCharCode","itemsLength","items","arrayLength","getSortCompare","../internals/array-sort","../internals/delete-property-or-throw","../internals/engine-ff-version","../internals/engine-is-ie-or-edge","../internals/engine-webkit-version","329","getReplacerFunction","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","$replacer","fixIllFormed","space","../internals/get-json-replacer-function","330","JSON","331","collection","init","../internals/collection","../internals/collection-strong","332","../modules/es.map.constructor","333","../internals/math-sign","334","335","336","thisNumberValue","NUMBER","NativeNumber","PureNumberNamespace","NumberPrototype","toNumeric","primValue","toNumber","third","radix","maxCode","digits","NaN","parseInt","calledWithNew","NumberWrapper","wrap","../internals/this-number-value","337","../internals/number-is-finite","338","../internals/is-integral-number","339","isNaN","340","isIntegralNumber","abs","isSafeInteger","341","MAX_SAFE_INTEGER","342","../internals/object-assign","343","$freeze","344","nativeGetOwnPropertyDescriptor","345","$getOwnPropertySymbols","346","nativeGetPrototypeOf","347","348","../internals/object-to-string","349","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","status","reason","../internals/perform","../internals/promise-statics-incorrect-iteration","350","$promiseResolve","351","PROMISE_STATICS_INCORRECT_ITERATION","PROMISE_ANY_ERROR","any","alreadyResolved","alreadyRejected","352","real","catch","onRejected","353","Internal","OwnPromiseCapability","nativeThen","speciesConstructor","task","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","PromiseWrapper","../internals/host-report-errors","../internals/microtask","../internals/species-constructor","354","finally","onFinally","isFunction","../internals/promise-resolve","355","../modules/es.promise.all","../modules/es.promise.catch","../modules/es.promise.constructor","../modules/es.promise.race","../modules/es.promise.reject","../modules/es.promise.resolve","356","race","357","358","PromiseConstructorWrapper","CHECK_WRAPPER","359","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","newTarget","$args","../internals/function-bind","360","361","getRegExpFlags","proxyAccessor","NativeRegExp","SyntaxError","stringIndexOf","IS_NCG","CORRECT_NEW","BASE_FORCED","RegExpWrapper","pattern","rawFlags","handled","thisIsRegExp","patternIsRegExp","flagsAreUndefined","rawPattern","named","brackets","ncg","groupid","groupname","handleNCG","handleDotAll","../internals/is-regexp","../internals/proxy-accessor","../internals/regexp-get-flags","362","363","INDICES_SUPPORT","calls","expected","addGetter","pairs","364","$toString","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","365","366","../modules/es.set.constructor","367","STRING_ITERATOR","point","368","$padEnd","padEnd","../internals/string-pad","../internals/string-pad-webkit-bug","369","$padStart","padStart","370","371","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","regExpExec","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","../internals/advance-string-index","../internals/fix-regexp-well-known-symbol-logic","../internals/get-substitution","../internals/regexp-exec-abstract","372","callRegExpExec","MAX_UINT32","$push","SPLIT","nativeSplit","internalSplit","limit","lim","lastLength","output","lastLastIndex","separatorCopy","splitter","unicodeMatching","q","z","originalExec","373","../internals/string-trim-end","../modules/es.string.trim-right","374","trimLeft","../internals/string-trim-start","375","trimRight","376","../modules/es.string.trim-left","377","defineWellKnownSymbol","../internals/well-known-symbol-define","378","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","$forEach","HIDDEN","QObject","nativeDefineProperty","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","description","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","../internals/symbol-define-to-primitive","379","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolDescriptiveString","desc","380","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","for","../internals/symbol-registry-detection","381","382","383","384","../modules/es.json.stringify","../modules/es.object.get-own-property-symbols","../modules/es.symbol.constructor","../modules/es.symbol.for","../modules/es.symbol.key-for","385","sym","386","387","388","389","390","391","392","393","394","395","InternalWeakMap","collectionWeak","isFrozen","isSealed","seal","FROZEN","SEALED","IS_IE11","$WeakMap","WeakMapPrototype","nativeSet","nativeDelete","nativeHas","nativeGet","frozenArray","arrayIntegrityLevel","../internals/collection-weak","396","../modules/es.weak-map.constructor","397","../modules/es.aggregate-error","398","399","aMap","deleteAll","wasDeleted","allDeleted","../internals/a-map","400","emplace","401","../internals/map-iterate","402","newMap","403","findKey","404","405","../internals/collection-from","406","groupBy","407","sameValueZero","searchElement","../internals/same-value-zero","408","keyBy","keyDerivative","409","keyOf","410","mapKeys","411","mapValues","412","413","of","../internals/collection-of","414","noInitial","accumulator","415","416","updateOrInsert","../internals/map-upsert","417","isPresentInMap","418","upsert","419","../modules/es.promise.all-settled.js","420","../modules/es.promise.any","421","try","422","withResolvers","423","addAll","424","425","toSetLike","$difference","difference","../internals/set-difference","../internals/to-set-like","426","setMethodAcceptSetLike","../internals/set-method-accept-set-like","427","428","newSet","429","430","431","$intersection","intersection","../internals/set-intersection","432","433","$isDisjointFrom","isDisjointFrom","../internals/set-is-disjoint-from","434","435","$isSubsetOf","isSubsetOf","../internals/set-is-subset-of","436","437","$isSupersetOf","isSupersetOf","../internals/set-is-superset-of","438","439","arrayJoin","sep","440","441","442","443","444","$symmetricDifference","symmetricDifference","../internals/set-symmetric-difference","445","446","$union","union","../internals/set-union","447","448","449","450","../internals/symbol-is-registered","451","isRegistered","452","../internals/symbol-is-well-known","453","isWellKnown","454","455","456","457","458","459","460","DOMIterables","ArrayIteratorMethods","ArrayValues","handlePrototype","CollectionPrototype","COLLECTION_NAME","../internals/dom-iterables","../internals/dom-token-list-prototype","../modules/es.array.iterator","461","../../es/array/fill","462","../../es/array/find-index","463","../../es/array/find","464","../../es/array/from","465","../../es/array/includes","466","../../es/map","../../modules/web.dom-collections.iterator","467","../../es/object/assign","468","../../es/promise/finally","469","../../es/promise","470","../../es/set","471","../../es/symbol","472","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","MEMO_STATICS","$$typeof","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","blacklist","inheritedComponent","targetStatics","sourceStatics","react-is","473","safeIsNaN","areInputsEqual","newInputs","lastInputs","resultFn","isEqual","memoized","newArgs","lastThis","lastArgs","lastResult","474","propIsEnumerable","test1","test2","test3","letter","err","shouldUseNative","to","s","475","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","marker","runClearTimeout","Item","title","browser","argv","on","addListener","once","off","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","476","checkPropTypes","typeSpecs","getStack","resetWarningCache","./lib/ReactPropTypesSecret","./lib/has","477","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","shim","propName","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","PropTypes","478","ReactIs","printWarning","emptyFunctionThatReturnsNull","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","ANONYMOUS","createPrimitiveTypeChecker","createChainableTypeChecker","typeChecker","PropTypeError","propValue","getPropType","isValidElementType","expectedClass","expectedClassName","propType","expectedValues","validate","is","valuesString","getPreciseType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedType","shapeTypes","invalidValidatorError","allKeys","checkType","chainedCheckType","iteratorFn","maybeIterable","getIteratorFn","Date","./checkPropTypes","object-assign","479","480","481","_default","le","g","482","_ramda","_curry","_interopRequireDefault","_lengthLte","pipe","uniq","./lengthLte","ramda","ramda/src/internal/_curry1","483","curry","equals","484","uniqWith","identical","485","486","core-js/modules/es.array.iterator.js","core-js/modules/es.object.to-string.js","core-js/modules/es.promise.js","core-js/modules/es.string.iterator.js","core-js/modules/web.dom-collections.iterator.js","487","allSettledPPolyfill","_isFunction","_Promise","./internal/polyfills/Promise.allSettled","./isFunction","488","_lengthEq","converge","./lengthEq","489","_typeof3","_interopRequireDefault2","anyPPolyfill","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","AggregatedError","./internal/polyfills/Promise.any","@babel/runtime/helpers/interopRequireDefault","@babel/runtime/helpers/typeof","core-js/modules/es.object.get-own-property-descriptor.js","core-js/modules/es.symbol.description.js","core-js/modules/es.symbol.iterator.js","core-js/modules/es.symbol.js","core-js/modules/es.weak-map.js","490","append","491","_list","_isTruthy","combiningPredicate","predicates","useWith","compose","./isTruthy","./list","492","_resolveP","_rejectP","generatorFn","asyncWrapper","handle","resolved","curryN","./rejectP","./resolveP","493","leftFn","rightFn","catamorphicObj","matchWith","Ok","Just","_ref3","Nothing","Success","_ref4","Failure","_ref5","cata","getOrElse","elseValue","either","494","495","_isFalsy","./isFalsy","496","_stubUndefined","leftIdentitySemigroup","identity","when","./stubUndefined","core-js/modules/es.array.concat.js","497","498","contains","499","_curryRightN","./curryRightN","500","reverse","501","predicate","defaultVal","502","_isNonNegative","_isInteger","makeDelay","settleFnPicker","opts","propOr","settleFn","partial","delayP","nth","./isInteger","./isNonNegative","503","_isNotNil","_isNonEmptyArray","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","byArity","comparator","getMaxArity","prop","reduced","ifElse","functions","./isNonEmptyArray","./isNotNil","core-js/modules/es.array.from.js","core-js/modules/es.array.sort.js","504","divide","505","nAry","506","_isNotArray","./isNotArray","507","_isString","./isString","core-js/modules/es.regexp.exec.js","core-js/modules/es.string.replace.js","508","_mapping","_traits","_createClass","_ap","ap","_map","_equals","_concat","_chain","chain","_lte","lte","_empty","_contramap","contramap","Identity","_classCallCheck","_value","applyWithFn","applyTrait","functorTrait","setoid","setoidTrait","semigroup","semigroupTrait","chainTrait","ord","ordTrait","./mapping","./traits","core-js/modules/es.array.map.js","509","alt","zero","traverse","chainRec","extend","extract","bimap","promap","core-js/modules/es.object.freeze.js","510","_isNumber","_util","_defineProperty","isSameType","concatenatedValue","pathSatisfies","newChain","../isFunction","../isNumber","../isString","./util","511","isNotSameType","typeEquals","typeIdent","monad","complement","512","flatten1","depth","currentDept","flatList","ramda/src/internal/_makeFlat","513","pathOr","514","_flattenPath","./flattenPath","515","516","_isObj","hasPath","objPath","./isObj","517","inRangeImp","gte","both","gt","high","518","isFunctor","isApply","applyF","applyX","../fantasy-land/mapping","519","520","521","_isIterable","_isNotUndefined","_isNotFunction","thisArg","boundMapFn","copyArray","../../isIterable","../../isNotFunction","../../isNotNil","../../isNotUndefined","522","523","_isFinite","numV","../../isFinite","core-js/modules/es.number.constructor.js","524","pow","core-js/modules/es.number.max-safe-integer.js","525","../../isNumber","526","527","528","_Number","../../isInteger","./Number.MAX_SAFE_INTEGER","529","_allP","onFulfill","onReject","../../allP","../../resolveP","530","_possibleConstructorReturn","_assertThisInitialized","_wrapNativeSuper","Class","_cache","_construct","Parent","_Error","_inherits","core-js/modules/es.map.js","core-js/modules/es.object.get-prototype-of.js","core-js/modules/es.object.set-prototype-of.js","core-js/modules/es.reflect.construct.js","core-js/modules/es.regexp.to-string.js","531","_String","padString","targetLength","finalLength","finalPadString","remainingLength","../../isFunction","./String.repeat","core-js/modules/es.array.slice.js","core-js/modules/es.string.repeat.js","532","lenghtToPad","533","_isNotFinite","_isNegative","validCount","maxCount","log","substring","../../isNegative","../../isNotFinite","534","checkValue","valueName","checkArguments","checkSearchValue","returnResult","core-js/modules/es.array.join.js","core-js/modules/es.regexp.constructor.js","core-js/modules/es.regexp.flags.js","core-js/modules/es.string.split.js","535","536","537","_isArray2","ramda/src/internal/_isArray","538","_isArray","nodeType","./isArray","539","540","541","542","isEmpty","543","544","_isOdd","./isOdd","545","546","547","isFinitePolyfill","./internal/polyfills/Number.isFinite","core-js/modules/es.number.is-finite.js","548","./isFinite","549","_isGeneratorFunction","_isAsyncFunction","anyPass","./isAsyncFunction","./isGeneratorFunction","550","GeneratorFunction","legacyCheck","551","isIntegerPolyfill","./internal/polyfills/Number.isInteger","core-js/modules/es.number.is-integer.js","552","hasIn","553","554","isNaNPolyfill","./internal/polyfills/Number.isNaN","core-js/modules/es.number.is-nan.js","555","./isNumber","556","557","isNil","558","_isNotEmpty","./isNotEmpty","559","_isNotObj","allPass","./isNotObj","560","561","562","563","_isArrayLike","./isArrayLike","564","565","_isBoolean","./isBoolean","566","_isDate","./isDate","567","568","_isFinite2","569","_isFloat","./isFloat","570","571","572","573","_isNaN2","./isNaN","574","575","_isNilOrEmpty","./isNilOrEmpty","576","_isNull","./isNull","577","578","579","_isObjLike","./isObjLike","580","_isPair","./isPair","581","_isPlainObj","./isPlainObj","582","_isRegExp","./isRegExp","583","584","_isUndefined","./isUndefined","585","_isValidDate","./isValidDate","586","_isValidNumber","./isValidNumber","587","588","_isNumber2","ramda/src/internal/_isNumber","589","_isNotNull","_isOfTypeObject","./internal/isOfTypeObject","./isNotNull","590","591","modulo","592","593","_isObject2","isObjectConstructor","hasObjectConstructor","ramda/src/internal/_isObject","594","lt","595","596","597","598","isSafeIntegerPolyfill","./internal/polyfills/Number.isSafeInteger","core-js/modules/es.number.is-safe-integer.js","599","600","601","_isString2","ramda/src/internal/_isString","602","603","604","605","606","607","_isNotNaN","invoker","./isNotNaN","608","609","_lengthGte","fulfilled","rejected","listOfPromises","./allP","./lengthGte","610","./internal/compareLength","611","612","613","614","615","616","lens","view","617","isomorphism","lensIso","isomorphic","toFunctorFn","618","_lensEq","./lensEq","619","_lensSatisfies","./lensSatisfies","620","_isTrue","./isTrue","621","_Identity","./fantasy-land/Identity","622","_liftFN","./liftFN","623","lifted","apps","./internal/ap","624","unapply","625","addIndex","626","_mergeRight","over","lensPath","./mergeRight","627","_paths","mergeAll","./paths","628","_mergePath","subj","./mergePath","629","630","631","fromIdx","toIdx","632","and","633","634","635","636","always","637","or","638","639","_allUnique","./allUnique","640","641","pickBy","642","rejectIndexed","containsIndex","indexes","643","padEndInvoker","padEndPolyfill","./internal/polyfills/String.padEnd","core-js/modules/es.string.pad-end.js","644","padStartPolyfill","padStartInvoker","./internal/polyfills/String.padStart","core-js/modules/es.string.pad-start.js","645","./padCharsEnd","646","./padCharsStart","647","pathEq","648","defaultFn","unary","649","ps","__","650","filterIndexed","core-js/modules/es.array.filter.js","651","propEq","652","653","_slicedToArray","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","_nonIterableRest","listLength","accP","currentValueP","previousValue","currentValue","reducer","654","flipArgs","reduceRight","arg1","655","656","_renameKeysWith","keysMap","valueOrKey","./renameKeysWith","657","toPairs","lensIndex","fromPairs","658","repeatStrInvoker","repeatStrPolyfill","./internal/polyfills/String.repeat","659","replaceAllInvoker","replaceAllPolyfill","replaceAll","./internal/polyfills/String.replaceAll","660","661","662","fns","tap","tx","663","signPolyfill","_Math","./internal/polyfills/Math.sign","core-js/modules/es.math.sign.js","664","665","666","dissocPath","667","_spreadPath","./spreadPath","668","669","670","671","672","673","subtract","674","675","fromPolyfill","_Array","fromArray","./internal/polyfills/Array.from","./isIterable","676","_contained","chars","dropLastWhile","./contained","677","dropWhile","678","trimEndInvoker","trimEndPolyfill","./internal/polyfills/String.trimEnd","core-js/modules/es.string.trim-end.js","679","trimStartInvoker","trimStartPolyfill","./internal/polyfills/String.trimStart","core-js/modules/es.string.trim-start.js","680","truncPolyfill","./internal/polyfills/Math.trunc","core-js/modules/es.math.trunc.js","681","transpose","682","defaultValue","defaultTo","683","684","configAccessor","685","zip","686","687","688","@@functional/placeholder","689","_curry2","./internal/_curry2","690","_curry1","idx","origFn","./curryN","./internal/_concat","./internal/_curry1","691","adjust","_curry3","_idx","./internal/_curry3","692","_dispatchable","./internal/_dispatchable","./internal/_xall","693","pluck","preds","./max","./pluck","./reduce","694","695","696","./internal/_xany","697","698","_reduce","./internal/_reduce","./map","699","_aperture","aperture","./internal/_aperture","./internal/_xaperture","700","701","702","applySpec","spec","./apply","./keys","./values","703","applyTo","704","ascend","aa","bb","705","assoc","706","_has","assocPath","nextObj","./assoc","./internal/_has","./internal/_isArray","./internal/_isInteger","./isNil","707","binary","./nAry","708","_arity","thisObj","./internal/_arity","709","lift","./and","./internal/_isFunction","./lift","710","./curry","711","_makeFlat","_xchain","./internal/_makeFlat","./internal/_xchain","712","713","_clone","./internal/_clone","714","pred","715","./not","716","./pipe","./reverse","717","pop","./chain","./compose","718","pipeP","./pipeP","719","pipeWith","composeWith","xf","./pipeWith","720","./internal/_isString","./toString","721","cond","pair","722","constructN","Fn","./constructN","723","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","724","_includes","./internal/_includes","725","after","context","./internal/_map","726","countBy","reduceBy","elem","./reduceBy","727","728","_curryN","./internal/_curryN","729","dec","./add","730","731","descend","732","_Set","out","firstLen","secondLen","toFilterOut","./internal/_Set","733","_includesWith","differenceWith","./internal/_includesWith","734","dissoc","735","./dissoc","./remove","./update","736","737","_xdrop","drop","xs","./internal/_xdrop","./slice","738","_dropLast","dropLast","./internal/_dropLast","./internal/_xdropLast","739","_dropLastWhile","./internal/_dropLastWhile","./internal/_xdropLastWhile","740","_xdropRepeatsWith","dropRepeatsWith","dropRepeats","./dropRepeatsWith","./equals","./internal/_xdropRepeatsWith","741","./last","742","_xdropWhile","./internal/_xdropWhile","743","./or","744","_isArguments","_isObject","./internal/_isArguments","./internal/_isObject","745","takeLast","endsWith","suffix","./takeLast","746","eqBy","747","eqProps","obj1","obj2","748","./internal/_equals","749","evolve","transformations","transformation","750","_filter","_xfilter","filterable","./internal/_filter","./internal/_xfilter","751","./internal/_xfind","752","./internal/_xfindIndex","753","findLast","./internal/_xfindLast","754","findLastIndex","./internal/_xfindLastIndex","755","flatten","756","757","_checkForMethod","./internal/_checkForMethod","758","forEachObjIndexed","keyList","759","760","761","groupWith","nextidx","762","763","764","./hasPath","765","766","_path","767","./nth","768","_objectIs","./internal/_objectIs","769","./internal/_identity","770","onTrue","onFalse","771","inc","772","773","indexBy","774","_indexOf","./internal/_indexOf","775","776","innerJoin","ys","777","elt","778","insertAll","elts","779","_nativeSet","_items","hasOrAdd","shouldAdd","prevSize","bIdx","./_includes","780","781","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","782","783","_toString","./_isFunction","./_toString","784","methodname","./_isArray","785","_cloneRegExp","refFrom","refTo","deep","copiedValue","../type","./_cloneRegExp","786","787","788","set1","set2","len1","len2","789","./_arity","./_curry2","790","_isPlaceholder","f1","./_isPlaceholder","791","f2","_b","_a","./_curry1","792","f3","793","received","combined","argsIdx","combinedIdx","794","_isTransformer","methodNames","transducer","./_isTransformer","795","take","../take","796","../slice","797","_arrayFromIterator","_functionName","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","aItem","typeA","keysA","extendedStackA","extendedStackB","../keys","./_arrayFromIterator","./_functionName","./_has","./_includesWith","./_objectIs","798","799","_forceReduced","_xfBase","rxf","@@transducer/init","@@transducer/result","@@transducer/step","preservingReduced","./_forceReduced","./_isArrayLike","./_reduce","./_xfBase","800","@@transducer/value","@@transducer/reduced","801","802","803","804","./_indexOf","805","806","inf","../equals","807","808","809","./_isString","810","811","812","813","814","815","816","817","818","recursive","flatt","jlen","ilen","819","functor","820","nextKey","821","822","823","824","ctx","825","826","_xwrap","_iterableReduce","_methodReduce","methodName","symIterator","_arrayReduce","../bind","./_xwrap","827","828","_objectAssign","_identity","objOf","_stepCatArray","_stepCatString","_stepCatObject","../objOf","./_identity","./_objectAssign","829","pad","_toISOString","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","830","_quote","seen","recur","mapPairs","repr","../reject","./_map","./_quote","./_toISOString","831","_reduced","XAll","_xall","./_reduced","832","XAny","_xany","833","XAperture","full","getCopy","_xaperture","./_concat","834","_flatCat","../map","./_flatCat","835","XDrop","836","XDropLast","_xdropLast","837","XDropLastWhile","retained","retain","_xdropLastWhile","838","XDropRepeatsWith","lastValue","seenFirstValue","sameAsLast","839","XDropWhile","840","841","XFilter","842","XFind","found","_xfind","843","XFindIndex","_xfindIndex","844","XFindLast","_xfindLast","845","XFindLastIndex","lastIdx","_xfindLastIndex","846","XMap","_xmap","847","XReduceBy","valueFn","valueAcc","keyFn","inputs","_xreduceBy","./_curryN","848","XTake","_xtake","849","XTakeWhile","_xtakeWhile","850","XTap","_xtap","851","XWrap","852","list1","list2","lookupList","filteredList","./flip","./uniq","853","intersperse","854","_stepCat","into","./internal/_isTransformer","./internal/_stepCat","855","invert","856","invertObj","857","858","Ctor","859","./empty","860","861","./invoker","862","juxt","./converge","863","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","864","keysIn","865","866","lastIndexOf","867","./internal/_isNumber","868","focus","869","./lens","870","./assocPath","./path","871","lensProp","./prop","872","liftN","./liftN","873","./ap","874","875","876","./internal/_xmap","877","mapAccum","tuple","878","mapAccumRight","879","mapObjIndexed","880","881","mathMod","882","883","maxBy","884","sum","mean","./sum","885","median","./mean","886","memoizeWith","mFn","887","./internal/_objectAssign","888","889","mergeDeepWithKey","mergeDeepLeft","lObj","rObj","lVal","rVal","./mergeDeepWithKey","890","mergeDeepRight","891","mergeDeepWith","892","mergeWithKey","./mergeWithKey","893","mergeLeft","894","mergeRight","895","mergeWith","_l","_r","896","897","898","minBy","899","900","move","positiveFrom","positiveTo","901","multiply","902","903","negate","904","_complement","none","./all","./internal/_complement","905","not","906","907","nthArg","908","909","910","./internal/_of","911","omit","912","913","914","_assertPromise","otherwise","./internal/_assertPromise","915","916","fst","snd","917","_createPartialApplicator","./internal/_createPartialApplicator","918","partialRight","919","partition","./filter","./juxt","./reject","920","paths","921","922","./defaultTo","923","propPath","924","pick","925","pickAll","926","927","_pipe","./internal/_pipe","./tail","928","composeK","./composeK","929","_pipeP","./internal/_pipeP","930","headList","tailList","./head","./identity","931","932","933","product","./multiply","934","project","./pickAll","./useWith","935","936","937","propIs","./is","938","./pathOr","939","propSatisfies","940","941","range","942","943","./internal/_xreduceBy","944","945","reduceWhile","./internal/_reduced","946","947","948","949","times","./always","./times","950","regex","951","952","scan","953","sequence","traversable","./prepend","./reduceRight","954","./over","955","toIndex","956","957","sortBy","958","sortWith","959","960","splitAt","./length","961","splitEvery","962","splitWhen","963","startsWith","./take","964","965","966","./concat","./difference","967","symmetricDifferenceWith","./differenceWith","968","969","./internal/_xtake","970","./drop","971","takeLastWhile","972","takeWhile","./internal/_xtakeWhile","973","./internal/_xtap","974","./internal/_cloneRegExp","./internal/_isRegExp","975","976","thunkify","fnArgs","977","978","toLower","979","980","toPairsIn","981","./internal/_toString","982","toUpper","983","transduce","./internal/_xwrap","984","outerlist","innerlist","985","./sequence","986","ws","beginRx","endRx","987","tryCatch","tryer","catcher","988","989","990","991","uncurryN","endIdx","currentDepth","992","unfold","seed","993","994","unionWith","./uniqWith","995","uniqBy","./uniqBy","996","appliedItem","997","998","unless","whenFalseFn","999","unnest","1000","until","1001","./adjust","1002","transformers","1003","vals","1004","valuesIn","vs","1005","Const","fantasy-land/map","1006","whenTrueFn","1007","where","testObj","1008","whereEq","./where","1009","without","1010","xprod","1011","rv","1012","zipObj","1013","zipWith","1014","scheduler","scheduler/tracing","1015","encodeURIComponent","ba","ca","da","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","D","oa","pa","qa","ma","na","la","removeAttribute","setAttributeNS","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","Qa","_render","Ra","_context","_payload","_init","Sa","Ta","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","cb","eb","Children","db","fb","selected","defaultSelected","disabled","gb","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","gridArea","lineClamp","rb","sb","setProperty","ub","menuitem","area","base","br","col","embed","hr","img","keygen","link","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Rd","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","color","date","datetime","datetime-local","email","month","password","search","tel","text","time","url","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","Me","compareDocumentPosition","Ne","HTMLIFrameElement","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","G","$e","af","bf","cf","df","Nb","w","ef","ff","gf","hf","J","K","Q","L","je","char","ke","unshift","jf","kf","lf","mf","autoFocus","nf","pf","qf","rf","sf","previousSibling","tf","vf","wf","yf","zf","Af","Bf","H","I","Cf","M","N","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","refs","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","useState","getSnapshot","subscribe","useEffect","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useImperativeHandle","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createElementNS","Hi","Ii","W","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","__REACT_DEVTOOLS_GLOBAL_HOOK__","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","1016","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","typeOf","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isConcurrentMode","isAsyncMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","1017","1018","./cjs/react-is.development.js","./cjs/react-is.production.min.js","1019","ReactReduxContext","nodeInterop","cacheBabelInterop","cacheNodeInterop","ContextKey","gT","getContext","_gT$ContextKey","contextMap","realContext","1020","_Context","_Subscription","_useIsomorphicLayoutEffect","serverState","stabilityCheck","noopCheck","contextValue","subscription","createSubscription","getServerState","previousState","getState","useIsomorphicLayoutEffect","onStateChange","notifyNestedSubs","trySubscribe","tryUnsubscribe","Context","../utils/Subscription","../utils/useIsomorphicLayoutEffect","./Context","1021","initializeConnect","_extends2","_objectWithoutPropertiesLoose2","_hoistNonReactStatics","_reactIs","_selectorFactory","_mapDispatchToProps","_mapStateToProps","_mergeProps","_shallowEqual","_warning","_useSyncExternalStore","_excluded","useSyncExternalStore","notInitialized","NO_SUBSCRIPTION_ARRAY","stringifyComponent","Comp","useIsomorphicLayoutEffectWithArgs","effectFunc","effectArgs","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","subscribeUpdates","shouldHandleStateChanges","childPropsSelector","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","strictEqual","hasWarnedAboutDeprecatedPureOption","mapStateToProps","mapDispatchToProps","mergeProps","pure","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","areMergedPropsEqual","initMapStateToProps","mapStateToPropsFactory","initMapDispatchToProps","mapDispatchToPropsFactory","initMergeProps","mergePropsFactory","wrapWithConnect","wrappedComponentName","selectorFactoryOptions","ConnectFunction","propsContext","reactReduxForwardedRef","ContextToUse","Consumer","didStoreComeFromProps","didStoreComeFromContext","overriddenContextValue","latestSubscriptionCallbackError","actualChildPropsSelector","subscribeForReact","reactListener","actualChildProps","renderedWrappedComponent","Connect","memo","forwarded","../connect/mapDispatchToProps","../connect/mapStateToProps","../connect/mergeProps","../connect/selectorFactory","../utils/shallowEqual","../utils/useSyncExternalStore","../utils/warning","@babel/runtime/helpers/objectWithoutPropertiesLoose","1022","createInvalidArgFactory","1023","_wrapMapToProps","wrapMapToPropsConstant","_bindActionCreators","wrapMapToPropsFunc","_invalidArgFactory","../utils/bindActionCreators","./invalidArgFactory","./wrapMapToProps","1024","1025","defaultMergeProps","wrapMergePropsFunc","_verifyPlainObject","stateProps","dispatchProps","ownProps","hasRunOnce","nextMergedProps","../utils/verifyPlainObject","1026","pureFinalPropsSelectorFactory","_verifySubselectors","hasRunAtLeastOnce","handleSubsequentCalls","nextState","nextOwnProps","propsChanged","stateChanged","dependsOnOwnProps","nextStateProps","statePropsChanged","handleNewState","./verifySubselectors","1027","verify","1028","getConstant","constant","constantSelector","getDependsOnOwnProps","mapToProps","proxy","stateOrDispatch","1029","_exportNames","connect","useDispatch","createDispatchHook","useSelector","createSelectorHook","useStore","createStoreHook","shallowEqual","_Provider","_connect","_useDispatch","_useSelector","_useStore","_types","./components/Context","./components/Provider","./components/connect","./hooks/useDispatch","./hooks/useSelector","./hooks/useStore","./types","./utils/shallowEqual","1030","../components/Context","./useStore","1031","createReduxContextHook","useReduxContext","_react","1032","initializeUseSelector","_useReduxContext","useSyncExternalStoreWithSelector","refEquality","equalityFnOrOptions","equalityFn","globalStabilityCheck","globalNoopCheck","firstRun","wrappedSelector","finalStabilityCheck","toCompare","selected2","finalNoopCheck","selectedState","addNestedSub","./useReduxContext","1033","1034","1035","parentSub","unsubscribe","nullListeners","handleChangeWrapper","batch","_batch","getBatch","isSubscribed","createListenerCollection","getListeners","./batch","1036","setBatch","newBatch","1037","actionCreators","boundActionCreators","actionCreator","1038","baseProto","1039","_reactDom","react-dom","1040","objA","objB","keysB","1041","canUseDOM","1042","1043","_isPlainObject","./isPlainObject","./warning","1044","1045","REACT_MODULE_REFERENCE","REACT_SERVER_CONTEXT_TYPE","REACT_OFFSCREEN_TYPE","SuspenseList","hasWarnedAboutDeprecatedIsConcurrentMode","isSuspenseList","getModuleId","1046","1047","1048","_objectSpread","_createSuper","memoizeOne","_objectWithoutProperties","memoizeOne__default","A11yText$1","defaultAriaLiveMessages","guidance","isSearchable","isMulti","tabSelectsValue","onChange","_props$label","labels","onFocus","focused","_props$label2","selectValue","isSelected","getArrayIndex","onFilter","inputValue","resultsMessage","LiveRegion$1","ariaSelection","focusedOption","focusedValue","focusableOptions","isFocused","selectProps","ariaLiveMessages","getOptionLabel","isOptionDisabled","menuIsOpen","screenReaderStatus","ariaLabel","ariaLive","messages","ariaSelected","option","selectedOptions","removedValue","removedValues","multiSelected","onChangeProps","ariaFocused","focusMsg","onFocusProps","ariaResults","resultsMsg","ariaGuidance","guidanceMsg","aria-label","ariaContext","ScreenReaderText","isInitialFocus","aria-live","aria-atomic","aria-relevant","diacritics","letters","anyDiacritic","diacriticToBase","diacritic","stripDiacritics","memoizedStripDiacriticsForInput","trimString","defaultStringify","createFilter","rawInput","__isNew__","_ignoreCase$ignoreAcc","ignoreAccents","matchFrom","candidate","substr","DummyInput","innerRef","filteredProps","removeProps","background","border","caretColor","fontSize","outline","STYLE_KEYS","LOCK_STYLES","boxSizing","preventTouchMove","allowTouchMove","preventInertiaScroll","totalScroll","currentScroll","isTouchDevice","maxTouchPoints","activeScrollLocks","listenerOptions","blurSelectInput","blur","_ref2$1","ScrollManager","lockEnabled","_ref$captureEnabled","captureEnabled","setScrollCaptureTarget","isEnabled","onBottomArrive","onBottomLeave","onTopArrive","onTopLeave","isBottom","touchStart","scrollTarget","handleEventDelta","delta","_scrollTarget$current","isDeltaPositive","availableScroll","shouldCancelScroll","cancelScroll","onWheel","onTouchStart","onTouchMove","startListening","notPassive","supportsPassiveEvents","stopListening","useScrollCapture","setScrollLockTarget","_ref$accountForScroll","accountForScrollbars","originalStyles","addScrollLock","touchScrollTarget","targetStyle","currentPadding","paddingRight","adjustedPadding","innerWidth","removeScrollLock","useScrollLock","RequiredInput$1","tabIndex","aria-hidden","getOptionLabel$1","getOptionValue$1","defaultStyles","clearIndicator","clearIndicatorCSS","containerCSS","control","dropdownIndicator","dropdownIndicatorCSS","groupCSS","groupHeading","groupHeadingCSS","indicatorsContainer","indicatorsContainerCSS","indicatorSeparator","indicatorSeparatorCSS","inputCSS","loadingIndicator","loadingIndicatorCSS","loadingMessage","loadingMessageCSS","menu","menuCSS","menuList","menuListCSS","menuPortal","menuPortalCSS","multiValue","multiValueCSS","multiValueLabel","multiValueLabelCSS","multiValueRemove","multiValueRemoveCSS","noOptionsMessage","noOptionsMessageCSS","optionCSS","placeholder","placeholderCSS","singleValue","css$1","valueContainer","valueContainerCSS","defaultTheme","borderRadius","colors","primary","primary75","primary50","primary25","danger","dangerLight","neutral0","neutral5","neutral10","neutral20","neutral30","neutral40","neutral50","neutral60","neutral70","neutral80","neutral90","spacing","baseUnit","controlHeight","menuGutter","backspaceRemovesValue","blurInputOnSelect","isTouchCapable","captureMenuScroll","closeMenuOnSelect","closeMenuOnScroll","components","controlShouldRenderValue","escapeClearsValue","filterOption","formatGroupLabel","getOptionValue","isLoading","isRtl","maxMenuHeight","minMenuHeight","menuPlacement","menuPosition","menuShouldBlockScroll","menuShouldScrollIntoView","isMobileDevice","openMenuOnFocus","openMenuOnClick","pageSize","unstyled","toCategorizedOption","_isOptionDisabled","_isOptionSelected","buildCategorizedOptions","groupOrOption","groupOrOptionIndex","categorizedOptions","optionIndex","categorizedOption","isFocusable","notNullish","buildFocusableOptionsFromCategorizedOptions","optionsAccumulator","_props$inputValue","shouldHideSelectedOptions","_filterOption","isOptionSelected","hideSelectedOptions","instanceId","Select","_Component","_super","_props","inputIsHidden","clearFocusValueOnUpdate","prevWasFocused","inputIsHiddenAfterUpdate","prevProps","blockOptionHover","isComposing","commonProps","initialTouchX","initialTouchY","instancePrefix","openAfterFocus","scrollToFocusedOptionOnUpdate","userIsDragging","controlRef","getControlRef","focusedOptionRef","getFocusedOptionRef","menuListRef","getMenuListRef","inputRef","getInputRef","focusInput","blurInput","newValue","actionMeta","_this$props","ariaOnChange","_this$props2","onInputChange","prevInputValue","setState","onMenuClose","selectOption","_this$props3","deselected","multiValueAsValue","singleValueAsValue","removeValue","newValueArray","valueTernary","clearValue","popValue","lastSelectedValue","classNamePrefix","getStyles","custom","getClassNames","_this$props$className","_this$props$className2","getElementId","getComponents","defaultComponents","getCategorizedOptions","buildFocusableOptions","getFocusableOptions","onMenuMouseDown","onMenuMouseMove","onControlMouseDown","openMenu","onDropdownIndicatorMouseDown","_this$props4","onClearIndicatorMouseDown","onScroll","isDocumentElement","onCompositionStart","onCompositionEnd","touch","onTouchEnd","onControlTouchEnd","onClearIndicatorTouchEnd","onDropdownIndicatorTouchEnd","handleInputChange","onMenuOpen","onInputFocus","onInputBlur","onBlur","onOptionHover","onValueInputFocus","onKeyDown","_this$props5","isClearable","_this$state","focusValue","focusOption","cleanValue","startListeningComposition","startListeningToTouch","scrollIntoView","_this$props6","stopListeningComposition","stopListeningToTouch","_this2","_this$state2","openAtIndex","selectedIndex","_this$state3","focusedIndex","nextFocus","hasValue","_this$props7","formatOptionLabel","_inputValue","_selectValue","_this$props8","inputId","Input","_this$state4","ariaAttributes","aria-autocomplete","aria-expanded","aria-haspopup","aria-errormessage","aria-invalid","aria-labelledby","aria-required","role","aria-controls","aria-owns","aria-readonly","aria-describedby","autoCapitalize","autoComplete","autoCorrect","isHidden","spellCheck","inputMode","_this3","_this$getComponents2","MultiValue","MultiValueContainer","MultiValueLabel","MultiValueRemove","SingleValue","Placeholder","_this$props9","_this$state5","innerProps","opt","isOptionFocused","Container","Label","Remove","onMouseDown","ClearIndicator","_this$props10","LoadingIndicator","_this$props11","_this$getComponents5","DropdownIndicator","IndicatorSeparator","_this4","_this$getComponents7","Group","GroupHeading","MenuList","MenuPortal","LoadingMessage","NoOptionsMessage","Option","_this$props12","menuPortalTarget","onMenuScrollToTop","onMenuScrollToBottom","menuUI","onHover","onSelect","optionId","onMouseMove","onMouseOver","hasOptions","_data","groupIndex","groupId","headingId","Heading","headingProps","_message","menuPlacementProps","menuElement","MenuPlacer","_ref4$placerProps","placerProps","maxHeight","scrollTargetRef","appendTo","controlElement","_this5","_this$props13","delimiter","_this$state6","_this$getComponents8","IndicatorsContainer","SelectContainer","ValueContainer","_this$props14","getCommonProps","renderLiveRegion","renderPlaceholderOrValue","renderInput","renderClearIndicator","renderLoadingIndicator","renderIndicatorSeparator","renderDropdownIndicator","renderMenu","renderFormField","newMenuOptionsState","nextSelectValue","lastFocusedIndex","getNextFocusedValue","lastFocusedOption","getNextFocusedOption","newInputIsHiddenState","newAriaSelection","hasKeptFocus","mergeStyles","keyAsString","rsCss","./index-b678006b.cjs.dev.js","@babel/runtime/helpers/classCallCheck","@babel/runtime/helpers/createClass","@babel/runtime/helpers/createSuper","@babel/runtime/helpers/inherits","@babel/runtime/helpers/objectSpread2","@babel/runtime/helpers/objectWithoutProperties","@babel/runtime/helpers/toConsumableArray","@emotion/react","memoize-one","1049","./index-7802bc67.cjs.prod.js","1050","_taggedTemplateLiteral","reactDom","dom","useLayoutEffect__default","_excluded$4","applyPrefixToName","cleanCommonProps","getStyleProps","classNamesState","getScrollTop","scrollTo","easeOutCubic","animatedScrollTo","duration","change","increment","currentTime","animateScroll","passiveOptionAccessed","_excluded$3","_excluded2$1","getMenuPlacement","preferredMaxHeight","menuEl","minHeight","preferredPlacement","shouldScroll","isFixedPosition","scrollParent","excludeStaticParent","overflowRx","parentElement","getScrollParent","defaultState","_menuEl$getBoundingCl","menuBottom","menuHeight","menuTop","containerTop","viewHeight","innerHeight","marginBottom","marginTop","viewSpaceAbove","viewSpaceBelow","scrollSpaceAbove","scrollSpaceBelow","scrollDown","scrollUp","scrollDuration","_constrainedHeight","spaceAbove","_constrainedHeight2","_templateObject","coercePlacement","PortalPlacementContext","Menu$1","noticeCSS","_ref5$theme","textAlign","_excluded$2","_excluded2","Svg","viewBox","focusable","CrossIcon","DownChevron","baseCSS","_ref3$theme",":hover","loadingDotAnimations","LoadingDot","_ref6","delay","backgroundColor","marginLeft","verticalAlign","Control$1","control--is-disabled","control--is-focused","control--menu-is-open","_excluded$1","Group$1","spacingStyle","font","minWidth","margin","containerStyle","gridTemplateColumns","&:after","visibility","whiteSpace","inputStyle","MultiValueGeneric","indicator","clear-indicator","dropdown-indicator","_cleanCommonProps","group-heading","indicators","indicator-separator","inputClassName","input-container","data-value","_ref7","_ref7$size","restProps","loading-indicator","menu-list","menu-list--is-multi","menuPortalRef","cleanupRef","_useState5","_useState6","setPortalPlacement","portalPlacementContext","_useState7","_useState8","computedPosition","setComputedPosition","updateComputedPosition","getBoundingClientObj","scrollDistance","runAutoUpdate","setMenuPortalElement","menuPortalElement","menuWrapper","menu-portal","_ref7$children","menu-notice","menu-notice--loading","_ref6$children","menu-notice--no-options","multi-value","multi-value--is-disabled","multi-value__label","multi-value__remove","option--is-disabled","option--is-focused","option--is-selected","aria-disabled","--is-disabled","--is-rtl","single-value","single-value--is-disabled","value-container","value-container--is-multi","value-container--has-value","_useState","_useState2","setMaxHeight","_useState3","_useState4","setPlacement","classNameList","pointerEvents","_ref$theme","alignItems","flexWrap","justifyContent","borderColor","borderStyle","borderWidth","boxShadow","&:hover","maxWidth","textOverflow","marginRight","paddingBottom","_ref2$theme","textTransform","_newValue","_ref4$theme","alignSelf","_objectSpread2","alignToControl","WebkitOverflowScrolling","_ref8","cropWithEllipsis","userSelect","WebkitTapHighlightColor",":active","propsObj","propsMap","focusedEl","menuRect","focusedRect","overScroll","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/slicedToArray","@babel/runtime/helpers/taggedTemplateLiteral","@floating-ui/dom","use-isomorphic-layout-effect","1051","1052","useStateManager","StateManagedSelect$1","baseSelectProps","NonceProvider","cacheKey","emotionCache","./Select-a02d53be.cjs.dev.js","./useStateManager-7748b351.cjs.dev.js","1053","./Select-e9ec2c9d.cjs.prod.js","./useStateManager-ce23061c.cjs.prod.js","1054","_ref$defaultInputValu","defaultInputValue","_ref$defaultMenuIsOpe","defaultMenuIsOpen","_ref$defaultValue","propsInputValue","propsMenuIsOpen","propsOnChange","propsOnInputChange","propsOnMenuClose","propsOnMenuOpen","propsValue","restSelectProps","stateInputValue","setStateInputValue","stateMenuIsOpen","setStateMenuIsOpen","stateValue","setStateValue","1055","1056","identifier","prefixer","prevElement","1057","1058","1059","forceUpdate","__self","__source","=",":","escape","_status","_result","IsSomeRendererActing","toArray","only","PureComponent","cloneElement","_currentValue2","_threadCount","createFactory","createRef","lazy","1060","1061","__interactionsRef","__subscriberRef","unstable_clear","unstable_getCurrent","unstable_getThreadID","unstable_subscribe","unstable_trace","unstable_unsubscribe","unstable_wrap","1062","1063","performance","unstable_forceFrameRate","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","1064","./cjs/scheduler.development.js","./cjs/scheduler.production.min.js","1065","./cjs/scheduler-tracing.development.js","./cjs/scheduler-tracing.production.min.js","1066","characters","CHARSET","COUNTER_STYLE","DOCUMENT","FONT_FACE","FONT_FEATURE_VALUES","IMPORT","LAYER","MEDIA","NAMESPACE","PAGE","SUPPORTS","VIEWPORT","caret","comment","commenter","declaration","escaping","parse","ruleset","sizeof","tokenize","tokenizer","whitespace","1067","_ponyfill","_ponyfill2","./ponyfill.js","1068","_Symbol","observable","1069","candidateSelectors","candidateSelector","matches","msMatchesSelector","webkitMatchesSelector","tabbable","candidateTabindex","regularTabbables","orderedTabbables","candidates","includeContainer","isNodeMatchingSelectorTabbable","getTabindex","documentOrder","sortOrderedTabbables","isNodeMatchingSelectorFocusable","isInput","isRadio","getCheckedRadio","isTabbableRadio","isNonTabbableRadio","isHiddenInput","isTabbable","focusableCandidateSelector","tabindexAttr","isContentEditable","1070","_IPv6","IPv6","best","address","_segments","segments","total","_best","_current","inzeroes","noConflict","1071","_SecondLevelDomains","SecondLevelDomains","SLD","al","ao","ar","at","au","bn","bo","bs","bz","cn","co","cr","cy","do","dz","er","es","et","fr","gn","gr","gu","hu","il","in","iq","ir","jo","jp","km","kn","kr","kw","ky","kz","lv","ly","ml","mn","mo","mt","mv","mw","mx","my","np","nr","om","pk","pl","pr","pw","ro","rs","sl","st","sv","sz","tr","tt","tw","mu","mz","nz","pt","py","ru","rw","sn","sy","tn","tz","us","uy","vn","yu","zm","com","net","org","tldOffset","sldOffset","sldList","1072","freeExports","freeModule","freeGlobal","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","not-basic","invalid-input","stringFromCharCode","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","baseMinusTMin","decode","basic","oldi","baseMinusT","codePoint","inputLength","bias","encode","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","ucs2","toASCII","toUnicode","1073","react_1","useDebouncedCallback_1","valueEquality","adjustFunctionValueOfSetState","initialState","useStateIgnoreCallback","debounced","cancel","isPending","./useDebouncedCallback","1074","wait","lastCallTime","lastInvokeTime","timerId","funcRef","mounted","useRAF","leading","trailing","maxing","maxWait","invokeFunc","startTimer","pendingFunc","shouldInvoke","timeSinceLastCall","timeSinceLastInvoke","trailingEdge","timerExpired","timeWaiting","remainingWait","isInvoking","1075","1076","1077","registerInternalModuleStart","ReactSharedInternals","format","level","ReactDebugCurrentFrame","getStackAddendum","argsWithFormat","objectIs","didWarnOld18Alpha","didWarnUncachedGetSnapshot","checkIfSnapshotChanged","inst","latestGetSnapshot","prevValue","nextValue","getServerSnapshot","startTransition","cachedValue","useSyncExternalStore$2","registerInternalModuleStop","1078","1079","instRef","_useMemo","memoizedSnapshot","memoizedSelection","hasMemo","memoizedSelector","nextSnapshot","_nextSelection","currentSelection","prevSelection","nextSelection","maybeGetServerSnapshot","getServerSelection","use-sync-external-store/shim","1080","1081","../cjs/use-sync-external-store-shim.development.js","../cjs/use-sync-external-store-shim.production.min.js","1082","../cjs/use-sync-external-store-shim/with-selector.development.js","../cjs/use-sync-external-store-shim/with-selector.production.min.js","1083","chart.js","Chart","moment","colorName","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","conversions","createCommonjsModule","reverseKeywords","convert","rgb","channels","hsl","hsv","hwb","cmyk","xyz","lab","lch","hex","keyword","ansi16","ansi256","hcg","apple","model","rdif","gdif","bdif","diff","diffc","reversed","currentClosestKeyword","currentClosestDistance","distance","t1","t2","t3","smin","lmin","vmin","bl","y2","x2","z2","atan2","PI","sqrt","cos","sin","ansi","mult","rem","colorString","hue","chroma","deriveBFS","fromModel","graph","models","buildGraph","adjacents","adjacent","wrapConversion","toModel","cur","conversion","routes","route","wrappedFn","wrapRounded","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","num","Color","valid","setValues","lightness","whiteness","isValid","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","rotate","degrees","mix","mixinColor","weight","color1","w1","w2","toJSON","spaces","maxes","getValues","capped","chans","sname","svalues","chartjsColor","helpers","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","each","loopable","arrayEquals","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","sources","merger","dst","inherits","extensions","ChartElement","Surrogate","__super__","_deprecated","scope","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","chart","clearRect","roundedRect","radius","moveTo","arc","closePath","drawPoint","rotation","xOffset","yOffset","cornerRadius","rad","save","translate","drawImage","restore","beginPath","lineTo","SQRT1_2","stroke","_isPointInArea","epsilon","clipArea","clip","unclipArea","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaults","_set","defaultColor","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","family","fontFamily","fontStyle","toFontString","info","cacheable","exports$2","_factorize","log10","exponent","LOG10E","powerOf10","helpers_math","helpers$1","easing","canvas","math","getRtlAdapter","rectX","setWidth","align","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","original","getPropertyValue","getPropertyPriority","prevTextDirection","restoreTextDirection","configuration","initialize","_type","hidden","pivot","_view","_model","_start","ease","actual","origin","c0","c1","interpolate","tooltipPosition","isNumber","core_element","exports$3","currentStep","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","onComplete","core_animations","animations","request","addAnimation","animating","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","stub","_chartjs","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","addElements","getMeta","updateIndex","scales","dataset","getDataset","scalesOpts","xAxisID","xAxes","yAxisID","yAxes","datasets","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","metaData","addElementAndReset","updateElement","buildOrUpdateElements","resyncElements","_configure","_config","_cachedDataOpts","easingValue","draw","getStyle","_resolveDatasetElementOptions","_resolveDataElementOptions","hover","readKey","datasetOpts","elementOptions","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","startAngle","endAngle","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","inner","borderAlign","lineWidth","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","mouseX","hoverRadius","inRange","chartX","chartY","pointRelativePosition","getAngleFromPoint","angle","betweenAngles","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","fillStyle","strokeStyle","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","lineCap","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","xRange","hitRadius","pointStyle","element_point","mouseY","inXRange","inYRange","chartArea","defaultColor$2","getBarBounds","x1","y1","half","swap","orig","v2","parseBorderWidth","maxW","maxH","edge","borderSkipped","horizontal","parseBorderSkipped","skipX","skipY","bounds","rectangle","element_rectangle","outer","boundingRects","fillRect","Arc","Line","Point","Rectangle","deprecated","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","barThickness","stackCount","curr","pixels","_length","getTicks","getPixelForTick","computeMinSampleSize","categoryPercentage","barPercentage","chunk","gridLines","offsetGridLines","bar","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","isHorizontal","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","metasets","_getMatchingVisibleMetas","stacked","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","percent","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","tooltips","callbacks","dataPoint","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","_options","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","outerHTML","legend","generateLabels","controller","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","ratioX","ratioY","offsetX","offsetY","arcs","cutout","chartWeight","_getRingWeight","startX","startY","endX","endY","contains0","contains90","contains270","maxX","maxY","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","centerX","centerY","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","ticks","defaultClip","toClip","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","ds","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","resolve$3","angleLines","circular","pointLabels","beginAtZero","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","scatter","controllers","bubble","polarArea","pie","radar","getRelativePosition","native","parseVisibleItems","getIntersectItems","getNearestItems","intersect","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","useY","pt1","pt2","indexMode","core_interaction","modes","single","x-axis","nearest","intersectsItem","filterByPosition","sortByWeight","getCombinedMax","updateDims","params","layout","newWidth","newHeight","box","getPadding","boxPadding","outerWidth","outerHeight","getMargins","marginForPositions","positions","fitBoxes","boxes","refit","changed","refitBoxes","fullWidth","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","configure","layoutOptions","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","layouts","setLayoutDims","updatePos","handleMaxPadding","stylesheet","CSS_SIZE_MONITOR","CSS_PREFIX","CSS_RENDER_MONITOR","ANIMATION_START_EVENTS","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","createDiv","addResizeListener","ticking","expando","resizer","maxSize","expand","shrink","_reset","createResizer","maintainAspectRatio","renderProxy","reflow","watchForRender","removeResizeListener","unwatchForRender","platform_dom$2","disableCSSInjection","_enabled","_ensureLoaded","getRootNode","rootNode","containsStyles","injectCSS","acquireContext","getElementById","renderHeight","renderWidth","initial","displayWidth","displayHeight","initCanvas","releaseContext","proxies","fromNativeEvent","addEvent","removeEvent","plugins","core_plugins","_plugins","_cacheId","register","plugin","unregister","getAll","hook","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","enabled","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","footer","afterFooter","positioners","average","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","bodyItem","getAfterBody","getFooter","indexScale","valueScale","existingModel","active","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","getLabelForIndex","itemSort","dataPoints","tooltip","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","getTooltipSize","paddingAndSize","radiusAndPadding","getBackgroundPoint","olf","orf","midX","midY","determineAlignment","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","tmp","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","hasTooltipContent","globalAlpha","handleEvent","getElementsAtEventForMode","positioners_1","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","updateConfig","newOptions","ensureScalesHaveIDs","buildOrUpdateScales","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","events","animationDuration","responsive","responsiveAnimationDuration","initConfig","_bufferedRender","instances","retinaScale","devicePixelRatio","bindEvents","resize","initToolTip","silent","getMaximumWidth","getMaximumHeight","newSize","onResize","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","updated","dtype","dposition","isDefault","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","newControllers","destroyDatasetMeta","ControllerClass","resetElements","updateLayout","updateDatasets","lastActive","_bufferedRequest","updateDataset","animationOptions","animationObject","easingFunction","stepDecimal","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","toDataURL","_chartInstance","_listeners","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","types","configMerge","scaleMerge","abstract","DateAdapter","formats","startOf","endOf","_create","override","members","core_adapters","_date","core_ticks","formatters","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","logarithmic","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","major","minor","valueAt","gcLen","garbageCollect","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","majorStart","majorEnd","tick","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","scaleLabel","labelString","minRotation","maxRotation","mirror","autoSkip","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","numItems","sample","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","startPixel","endPixel","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","userCallback","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","firstLabelSize","lastLabelSize","widestLabelSize","highestLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","labelHeight","offsetRight","labelWidth","handleMargins","isFullWidth","_getScaleLabel","getValueForPixel","decimal","getDecimalForPixel","pixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","maxTicksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","factors","factor","evenMajorSpacing","getEvenSpacing","calculateSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","tl","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","isLeft","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","maxSign","setMin","suggestedMin","setMax","suggestedMax","getTickLimit","maxTicks","stepSize","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","precision","fixedStepSize","generationOptions","dataRange","niceMin","niceMax","numSpaces","unit","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","generateTicks","ticksAsNumbers","_endValue","defaultConfig$1","stackData","neg","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","_defaults$1","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","exp","significand","tickVal","endExp","endSignificand","lastTick","generateTicks$1","tickValues","_getFirstTickValue","_valueOffset","_defaults$2","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","animate","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","scale_radialLinear","drawingArea","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","longestText","getIndexAngle","hLimits","vLimits","setReductions","fitWithPointLabels","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxLeft","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawPointLabels","drawRadiusLine","tickFontColor","_defaults$3","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","millisecond","steps","minute","hour","day","quarter","year","UNITS","sorter","getMin","getMax","interpolate$1","table","skey","tkey","mid","i0","i1","lo","lookup","span","toTimestamp","adapter","_adapter","parser","determineUnitForAutoTicks","minUnit","capacity","interval","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","adapters","displayFormats","timestamp","labelsAdded","timestamps","dataLabels","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","unitStepSize","weekday","isoWeekday","generate","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","tooltipFormat","tickFormatFunction","minorFormat","majorFormat","nestedTickOpts","formatter","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","_defaults$4","displayFormat","category","radialLinear","FORMATS","_id","amount","filler","propagate","mappers","decodeFill","computeBoundary","computeCircularBoundary","scaleBottom","scaleTop","scaleZero","computeLinearBoundary","resolveTarget","visited","visible","createMapper","isDrawable","drawArea","curve0","curve1","len0","doFill","mapper","loop","p0","d0","d1","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnWidths","columnHeights","totalWidth","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","dimension","blockSize","itemHeight","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","_element","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","filterCallback","findNextWhere","arrayToSearch","startIndex","currentItem","findPreviousWhere","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","evt","originalEvent","boundingRect","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","Animation","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","cfg","classes","argType","core-js/features/array/fill.js","../../full/array/fill","core-js/features/array/find-index.js","../../full/array/find-index","core-js/features/array/find.js","../../full/array/find","core-js/features/array/from.js","../../full/array/from","core-js/features/array/includes.js","../../full/array/includes","core-js/features/map/index.js","../../full/map","core-js/features/object/assign.js","../../full/object/assign","core-js/features/promise/finally.js","../../full/promise/finally","core-js/features/promise/index.js","../../full/promise","core-js/features/set/index.js","../../full/set","core-js/features/symbol","../../full/symbol","focus-trap","activeFocusDelay","trapQueue","xtend","activeFocusTraps","activateTrap","trap","activeTrap","pause","trapIndex","deactivateTrap","unpause","userOptions","doc","returnFocusOnDeactivate","escapeDeactivates","firstTabbableNode","lastTabbableNode","nodeFocusedBeforeActivation","mostRecentlyFocusedNode","paused","activate","activateOptions","updateTabbableNodes","onActivate","addListeners","deactivate","removeListeners","deactivateOptions","onDeactivate","returnFocus","previousActiveElement","tryFocus","getNodeForOption","getInitialFocusNode","checkFocusIn","checkPointerDown","checkClick","checkKey","optionName","optionValue","clickOutsideDeactivates","allowOutsideClick","Document","stopImmediatePropagation","isEscapeEvent","isTabEvent","checkTab","tabbableNodes","select","isSelectableInput","jquery-validation","validator","attr","settings","onsubmit","submitButton","hasClass","cancelSubmit","submitHandler","formSubmitted","currentForm","debug","pendingRequest","focusInvalid","errorList","command","staticRules","existingRules","closest","normalizeRule","normalizeRules","classRules","attributeRules","dataRules","remote","expr","pseudos","blank","filled","unchecked","makeArray","errorClass","pendingClass","validClass","errorElement","focusCleanup","errorContainer","errorLabelContainer","ignore","ignoreTitle","onfocusin","unhighlight","hideThese","errorsFor","onfocusout","checkable","submitted","optional","onkeyup","elementValue","inArray","invalid","highlight","findByName","addClass","removeClass","setDefaults","dateISO","equalTo","maxlength","minlength","rangelength","autoCreateRanges","labelContainer","errorContext","containers","valueCache","delegate","eventType","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","currentElements","cleanElement","clean","checkElement","validationTargetFor","prepareElement","testgroup","numberOfInvalids","toHide","successList","grep","defaultShowErrors","resetForm","hideErrors","removeData","removeAttr","objectLength","addWrapper","findLastActive","trigger","rulesCache","resetInternals","toShow","$element","validity","badInput","normalizer","rulesCount","dependencyMismatch","abortRequest","parameters","formatAndAdd","customDataMessage","customMessage","findDefined","defaultMessage","theregex","toToggle","showLabel","success","validElements","show","invalidElements","place","errorID","elementID","idOrName","describedBy","escapeHtml","errorPlacement","insertAfter","parents","escapeCssMeta","describer","getLength","depend","dependTypes","boolean","function","elementAjaxPort","startRequest","stopRequest","ajaxAbort","old","classRuleSettings","creditcard","addClassRules","normalizeAttributeRule","depends","keepRule","parameter","transformed","addMethod","decimals","errorMessage","decimalPlaces","toInt","optionDataString","originalMessage","ajax","dataType","response","pendingRequests","ajaxPrefilter","xhr","ajaxSettings","abort","jQuery","jquery","noGlobal","getProto","flat","class2type","fnToString","ObjectFunctionString","support","isWindow","preservedScriptAttributes","noModule","DOMEval","script","toType","rhtmlSuffix","isArrayLike","pushStack","elems","prevObject","even","_elem","odd","copyIsArray","isPlainObject","isReady","msg","isEmptyObject","globalEval","isXMLDoc","docElem","callbackExpect","guid","rtrimCSS","bup","rcssescape","fcssescape","asCodePoint","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","tokenCache","compilerCache","nonnativeSelectorCache","sortOrder","booleans","attributes","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","ID","CLASS","ATTR","PSEUDO","CHILD","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","nonHex","unloadHandler","setDocument","inDisabledFieldset","addCombinator","childNodes","els","nid","newSelector","newContext","getElementsByTagName","getElementsByClassName","testContext","toSelector","qsaError","cacheLength","markFunction","assert","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","matchIndexes","subWindow","getById","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","sortDetached","matchesSelector","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","operator","what","_argument","forward","ofType","xml","outerCache","nodeIndex","useCache","pseudo","setFilters","matcher","unmatched","lang","elemLang","safeActiveElement","hasFocus","header","_matchIndexes","radio","checkbox","file","image","submit","parseOnly","tokens","soFar","preFilters","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","compiled","filters","unique","getText","isXML","selectors","truncate","siblings","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","contents","targets","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Thrower","ex","adoptValue","noValue","Callbacks","createOptions","firing","memory","fired","locked","firingIndex","fire","stopOnFalse","disable","lock","fireWith","Deferred","tuples","deferred","newDefer","returned","progress","maxDepth","special","mightThrow","notifyWith","resolveWith","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","readyException","readyList","completed","readyWait","readyState","doScroll","access","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","_all","camelCase","acceptData","owner","Data","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","getData","_removeData","attrs","dequeue","startLength","hooks","_queueHooks","clearQueue","pnum","rcssNum","cssExpand","isAttached","composed","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","div","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","cloneNode","noCloneChecked","wrapMap","thead","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","optgroup","rhtml","buildFragment","scripts","selection","ignored","attached","fragment","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","one","leverageNative","isSetup","saved","isTrigger","delegateType","isImmediatePropagationStopped","handleObjIn","eventHandle","handleObj","handlers","namespaces","origType","elemData","triggered","bindType","delegateCount","setup","mappedTypes","origCount","teardown","handlerQueue","fix","delegateTarget","preDispatch","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","Event","load","noBubble","click","beforeunload","isSimulated","focusMappedHandler","simulate","attaches","dataHolder","mouseenter","mouseleave","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","replaceWith","replaceChild","prependTo","rnumnonpx","rcustomProp","opener","rboxStyle","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","measure","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","borderTopWidth","borderBottomWidth","cssPrefixes","emptyStyle","vendorProps","finalPropName","final","cssProps","capName","vendorPropName","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","setPositiveNumber","boxModelAdjustment","isBorderBox","computedVal","marginDelta","getWidthOrHeight","valueIsBorderBox","offsetProp","Tween","cssHooks","origName","scrollboxSizeBuggy","expanded","propHooks","eased","fx","swing","fxNow","inProgress","rfxtypes","rrun","schedule","createFxNow","genFx","includeWidth","createTween","tweeners","prefilters","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","complete","timer","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speed","speeds","fadeTo","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","class","curValue","finalValue","toggleClass","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","DOMParser","parseFromString","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","lastModified","etag","isLocal","processData","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","ajaxTransport","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","statusText","finalText","crossDomain","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","conv","dataFilter","throws","ajaxConvert","getJSON","getScript","text script","wrapAll","firstElementChild","wrapInner","htmlIsFunction","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","parentOffset","Height","Width","","defaultExtra","funcName","unbind","undelegate","fnOver","fnOut","holdReady","hold","parseJSON","isNumeric","_jQuery","_$","lodash.throttle","FUNC_ERROR_TEXT","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeSelf","objectToString","nativeMax","nativeMin","debounce","leadingEdge","isObjectLike","isBinary","hookCallback","isUndefined","isDate","hasOwnProp","createUTC","strict","createLocalOrUTC","utc","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","_isValid","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","createInvalid","momentProperties","copyConfig","_isAMomentObject","_f","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","updateOffset","isMoment","absFloor","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","aliases","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","zeroFill","forceSign","absNumber","zerosToFill","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","mom","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","strictRegex","isStrict","getParseRegexForToken","regexEscape","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","daysInYear","isLeapYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","daysInMonth","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","handleStrictParse","monthName","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","ms","getFullYear","setFullYear","createUTCDate","UTC","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","abbr","parentLocale","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getMonth","getDate","currentDateArray","weekYear","weekdayOverflow","GG","createLocal","_week","curWeek","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","totalParsedInputLength","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","configFromObject","configFromInput","isUTC","isObjectEmpty","prototypeMin","prototypeMax","moments","ordering","Duration","years","quarters","weeks","isoWeek","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","cloneWithOffset","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","period","addSubtract","isAdding","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","preParsePostFormat","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","getPrioritizedUnits","toDate","keepOffset","zone","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","picturefill","dummySrc","fixRespimg","findPictureImgs","mq","HTMLPictureElement","sizes","picture","_pfLastSize","imgs","matchMedia","srcset","eminpx","alwaysCheckWDescriptor","evalId","isSupportTestReady","getImgAttr","setImgAttr","removeImgAttr","algorithm","srcAttr","srcsetAttr","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","px","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","isSpace","regLength","buildStr","image2","width1","isDomReady","later","regReady","lastClientWidth","evalCSS","parsedLength","setResolution","sizesattr","cWidth","calcListLength","plen","qsa","reevaluate","reselect","selShort","setupRun","fillImg","teardownRun","ascendingSort","getCandidateForSrc","parseSet","makeUrl","hasFeature","ns","supSrcset","supSizes","supPicture","setSize","matchesMedia","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","currentDescriptor","parseDescriptors","lastChar","intVal","floatVal","pError","has1x","parseSrcset","getEmValue","originalHTMLCSS","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","regexCssLengthWithUnits","regexCssCalc","chrctr","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","imageData","dpr","sets","setSrcToCur","setSrc","origWidth","getSet","parseSets","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","getAllSourceElements","supported","extreme","evaled","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","vw","em","fillImgs","typeUri","Image","detectTypeSupport","prop-types","./factoryWithThrowingShims","./factoryWithTypeCheckers","ramda-adjunct","allSettledP","thenP","rejectP","resolveP","noneP","allP","curryRight","curryRightN","weaveLazy","weave","liftF","liftFN","stubArray","stubString","stubObject","stubObj","stubNull","stubUndefined","isSparseArray","isSet","isNotRegExp","isFalsy","isTruthy","isFalse","isTrue","isPromise","isNotPair","isPair","isEven","isOdd","isNotValidNumber","isValidNumber","isNotFloat","isFloat","isNotInteger","isNotFinite","isNotNaN","isMap","isNonNegative","isNonPositive","isNotNilOrEmpty","isNegativeZero","isPositiveZero","isNegative","isPositive","isNotNumber","isInvalidDate","isNotValidDate","isValidDate","isNotDate","isNotPlainObject","isNotPlainObj","isPlainObj","isNotObjectLike","isNotObjLike","isObjLike","isNotObject","isNotObj","isObj","isNotFunction","isNotAsyncFunction","isAsyncFunction","isNotGeneratorFunction","isGeneratorFunction","isNotArrayLike","isNonEmptyString","isNotString","isEmptyString","isString","isNilOrEmpty","isNotBoolean","isBoolean","isNonEmptyArray","isNotArray","isEmptyArray","isNotNil","isNotNull","isNull","isNotUndefined","padCharsEnd","padCharsStart","trimCharsStart","trimCharsEnd","escapeRegExp","subtractNum","divideNum","dropArgs","argsPass","nonePass","notAllPass","nor","neither","nand","notBoth","defaultWhen","isNotEmpty","pathNotEq","propNotEq","lensTraverse","lensNotSatisfy","lensSatisfies","lensNotEq","lensEq","zipObjWith","unzipObjWith","flattenPath","flattenProp","spreadPath","spreadProp","viewOr","pathOrLazy","omitBy","mergePath","mergeProp","mergePaths","resetToDefault","renameKeysWith","renameKeys","notAllUnique","allUnique","flattenDepth","allEqualTo","allIdenticalTo","allIdentical","repeatStr","allEqual","lengthNotEq","lengthEq","lengthLte","lengthGte","lengthLt","lengthGt","included","contained","appendFlipped","compact","omitIndexes","sliceTo","sliceFrom","reduceRightP","reduceP","concatRight","concatAll","ensureArray","pickIndexes","reduceIndexed","mapIndexed","lastP","firstP","anyP","sequencing","seq","_isEmptyArray","_isNotBoolean","_isEmptyString","_isNotString","_isNonEmptyString","_isNotArrayLike","_isNotGeneratorFunction","_isNotAsyncFunction","_isNotObjLike","_isNotPlainObj","_isNotDate","_isNotValidDate","_isNotNumber","_isPositive","_isPositiveZero","_isNegativeZero","_isNotNilOrEmpty","_isNonPositive","_isMap","_isNaN","_isNotInteger","_isNotFloat","_isNotValidNumber","_isEven","_isNotPair","_isThenable","_isPromise","_isFalse","_isNotRegExp","_isSet","_isSparseArray","_isSymbol","_isSafeInteger","_stubNull","_stubObj","_stubString","_stubArray","_noop","_liftF","_cata","_weave","_weaveLazy","_curryRight","_noneP","_delayP","_thenP","_allSettledP","_Y","_seq","_dispatch","_async","_anyP","_lastP","_mapIndexed","_reduceIndexed","_pickIndexes","_ensureArray","_concatAll","_concatRight","_reduceP","_reduceRightP","_sliceFrom","_sliceTo","_omitIndexes","_compact","_appendFlipped","_move","_lengthGt","_lengthLt","_lengthNotEq","_allEqual","_repeatStr","_allIdentical","_allIdenticalTo","_allEqualTo","_flattenDepth","_toArray","_notAllUnique","_renameKeys","_mergePaths","_mergeProp","_omitBy","_pathOrLazy","_viewOr","_hasPath","_spreadProp","_flattenProp","_unzipObjWith","_zipObjWith","_lensNotEq","_lensNotSatisfy","_lensTraverse","_lensIso","_propNotEq","_pathNotEq","_inRange","_defaultWhen","_notBoth","_nand","_neither","_nor","_notAllPass","_nonePass","_argsPass","_dropArgs","_round","_ceil","_divideNum","_floor","_trunc","_sign","_subtractNum","_replaceAll","_escapeRegExp","_trimStart","_trimEnd","_trimCharsEnd","_trimCharsStart","_padCharsStart","_padCharsEnd","_padEnd","_padStart","./Y","./allEqual","./allEqualTo","./allIdentical","./allIdenticalTo","./allSettledP","./anyP","./appendFlipped","./argsPass","./async","./cata","./ceil","./compact","./concatAll","./concatRight","./curryRight","./defaultWhen","./delayP","./dispatch","./divideNum","./dropArgs","./ensureArray","./escapeRegExp","./flattenDepth","./flattenProp","./floor","./inRange","./isEmptyArray","./isEmptyString","./isEven","./isFalse","./isMap","./isNegative","./isNegativeZero","./isNonEmptyString","./isNonPositive","./isNotArrayLike","./isNotAsyncFunction","./isNotBoolean","./isNotDate","./isNotFinite","./isNotFloat","./isNotFunction","./isNotGeneratorFunction","./isNotInteger","./isNotNilOrEmpty","./isNotNumber","./isNotObjLike","./isNotPair","./isNotPlainObj","./isNotRegExp","./isNotString","./isNotUndefined","./isNotValidDate","./isNotValidNumber","./isPositive","./isPositiveZero","./isPromise","./isSafeInteger","./isSet","./isSparseArray","./isSymbol","./isThenable","./lastP","./lengthGt","./lengthLt","./lengthNotEq","./lensIso","./lensNotEq","./lensNotSatisfy","./lensTraverse","./liftF","./mapIndexed","./mergePaths","./mergeProp","./mergeProps","./move","./nand","./neither","./noneP","./nonePass","./noop","./nor","./notAllPass","./notAllUnique","./notBoth","./omitBy","./omitIndexes","./padEnd","./padStart","./pathNotEq","./pathOrLazy","./pickIndexes","./propNotEq","./reduceIndexed","./reduceP","./reduceRightP","./renameKeys","./repeatStr","./replaceAll","./round","./seq","./sign","./sliceFrom","./sliceTo","./spreadProp","./stubArray","./stubNull","./stubObj","./stubString","./subtractNum","./thenP","./toArray","./trimCharsEnd","./trimCharsStart","./trimEnd","./trimStart","./trunc","./unzipObjWith","./viewOr","./weave","./weaveLazy","./zipObjWith","composeP","pipeK","./F","./T","./__","./addIndex","./allPass","./any","./anyPass","./aperture","./append","./applySpec","./applyTo","./ascend","./binary","./bind","./both","./call","./clamp","./clone","./comparator","./complement","./composeP","./composeWith","./cond","./construct","./contains","./countBy","./dec","./descend","./dissocPath","./divide","./dropLast","./dropLastWhile","./dropRepeats","./dropWhile","./either","./endsWith","./eqBy","./eqProps","./evolve","./find","./findIndex","./findLast","./findLastIndex","./flatten","./forEach","./forEachObjIndexed","./fromPairs","./groupBy","./groupWith","./gt","./gte","./has","./hasIn","./identical","./ifElse","./inc","./includes","./indexBy","./indexOf","./init","./innerJoin","./insert","./insertAll","./intersection","./intersperse","./into","./invert","./invertObj","./isEmpty","./join","./keysIn","./lastIndexOf","./lensIndex","./lensPath","./lensProp","./lt","./lte","./mapAccum","./mapAccumRight","./mapObjIndexed","./match","./mathMod","./maxBy","./median","./memoizeWith","./merge","./mergeAll","./mergeDeepLeft","./mergeDeepRight","./mergeDeepWith","./mergeLeft","./mergeWith","./min","./minBy","./modulo","./negate","./none","./nthArg","./o","./objOf","./of","./omit","./once","./otherwise","./pair","./partial","./partialRight","./partition","./pathEq","./pathSatisfies","./pick","./pickBy","./pipeK","./product","./project","./propEq","./propIs","./propOr","./propSatisfies","./props","./range","./reduceWhile","./reduced","./repeat","./replace","./scan","./set","./sort","./sortBy","./sortWith","./split","./splitAt","./splitEvery","./splitWhen","./startsWith","./subtract","./symmetricDifference","./symmetricDifferenceWith","./takeLastWhile","./takeWhile","./tap","./test","./then","./thunkify","./toLower","./toPairs","./toPairsIn","./toUpper","./transduce","./transpose","./traverse","./trim","./tryCatch","./type","./unapply","./unary","./uncurryN","./unfold","./union","./unionWith","./unless","./unnest","./until","./valuesIn","./view","./when","./whereEq","./without","./xprod","./zip","./zipObj","./zipWith","react-animate-height","_react2","_propTypes2","_classnames2","ANIMATION_STATE_CLASSES","animatingUp","animatingDown","animatingToHeightZero","animatingToHeightAuto","animatingToHeightSpecific","static","staticHeightZero","staticHeightAuto","staticHeightSpecific","PROPS_TO_OMIT","cancelAnimationFrames","requestAnimationFrameIDs","isPercentage","runCallback","AnimateHeight","_React$Component","animationFrameIDs","animationStateClasses","getStaticStateClasses","shouldUseTransitions","contentElement","hideContent","prevState","onAnimationEnd","onAnimationStart","_cx","showContent","contentHeight","totalDuration","timeoutState","isCurrentHeightAuto","timeoutAnimationStateClasses","timeoutID","animationClassesTimeoutID","_cx2","_cx3","_props2","animateOpacity","applyInlineTransitions","contentClassName","_state","componentStyle","WebkitTransition","contentStyle","componentClasses","ariaHidden","checkDCE","./cjs/react-dom.development.js","./cjs/react-dom.production.min.js","react-redux","_reactBatchedUpdates","_shim","_withSelector","_exports","./exports","./utils/batch","./utils/reactBatchedUpdates","use-sync-external-store/shim/with-selector","react-responsive","__WEBPACK_EXTERNAL_MODULE_react__","__webpack_modules__","./node_modules/css-mediaquery/index.js","__unused_webpack_module","mediaQuery","parseQuery","query","inverse","typeMatch","expressionsMatch","expressions","expression","modifier","expValue","toPx","toDpi","toDecimal","RE_MEDIA_QUERY","RE_MQ_EXPRESSION","RE_MQ_FEATURE","RE_LENGTH_UNIT","RE_RESOLUTION_UNIT","numbers","resolution","./node_modules/hyphenate-style-name/index.js","__webpack_exports__","__webpack_require__","__WEBPACK_DEFAULT_EXPORT__","uppercasePattern","toHyphenLower","hName","./node_modules/matchmediaquery/index.js","__unused_webpack_exports","staticMatch","dynamicMatch","Mql","forceStatic","mql","dispose","./node_modules/object-assign/index.js","./node_modules/prop-types/checkPropTypes.js","loggedTypeFailures","typeSpecName","./node_modules/prop-types/factoryWithTypeCheckers.js","manualPropTypeCallCache","manualPropTypeWarningCount","./node_modules/prop-types/index.js","./node_modules/prop-types/lib/ReactPropTypesSecret.js","./node_modules/prop-types/lib/has.js","./node_modules/react-is/cjs/react-is.development.js","./node_modules/react-is/index.js","./node_modules/shallow-equal/dist/index.esm.js","shallowEqualObjects","aKeys","bKeys","shallowEqualArrays","arrA","arrB","./src/Component.ts","__rest","__importDefault","mod","useMediaQuery_1","device","./src/Context.ts","./src/index.ts","toQuery","useMediaQuery","Component_1","toQuery_1","Context_1","./src/mediaQuery.ts","__assign","prop_types_1","stringOrNumber","grid","aural","braille","handheld","print","projection","screen","tty","tv","embossed","orientation","deviceAspectRatio","deviceHeight","deviceWidth","colorIndex","monochrome","featureMatchers","features","minAspectRatio","maxAspectRatio","minDeviceAspectRatio","maxDeviceAspectRatio","minDeviceHeight","maxDeviceHeight","minDeviceWidth","maxDeviceWidth","minColor","maxColor","minColorIndex","maxColorIndex","minMonochrome","maxMonochrome","minResolution","maxResolution","./src/toQuery.ts","hyphenate_style_name_1","mediaQuery_1","realKey","keyVal","./src/useMediaQuery.ts","matchmediaquery_1","shallow_equal_1","hyphenateKeys","useIsUpdate","useQuery","getQuery","makeQuery","setQuery","newQuery","deviceSettings","deviceFromProps","deviceFromContext","getDevice","setDevice","newDevice","useDevice","getMatchMedia","setMq","isUpdate","newMq_1","useMatchMedia","setMatches","updateMatches","ev","useMatches","__webpack_module_cache__","moduleId","cachedModule","definition","toStringTag","react-select","./react-select.cjs.dev.js","./react-select.cjs.prod.js","./cjs/react.development.js","./cjs/react.production.min.js","redux-thunk","createThunkMiddleware","extraArgument","thunk","withExtraArgument","redux","$$observable","randomString","ActionTypes","INIT","PROBE_UNKNOWN_ACTION","getUndefinedStateErrorMessage","actionType","bindActionCreator","enumerableOnly","funcs","__DO_NOT_USE__ActionTypes","applyMiddleware","middlewares","createStore","middlewareAPI","bindActionCreators","combineReducers","reducers","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observer","observeState","symbol-observable","smooth-scroll","initCustomEvent","CustomEvent","topOnEmptyHash","speedAsDuration","durationMax","durationMin","customEasing","updateURL","popstate","emitEvents","InvalidCharacterError","history","pushState","smoothScroll","hostname","pathname","decodeURIComponent","replaceState","SmoothScroll","svg4everybody","svg","loadreadystatechange","cachedDocument","_cachedDocument","_cachedTarget","_embeds","getSVGAncestor","rawopts","inIframe","requests","uses","numberOfSvgUseElementsToBypass","oninterval","use","srcSplit","urijs","_URI","URI","_urlSupplied","_baseSupplied","absoluteTo","escapeRegEx","getType","filterArrayValues","arrayContains","arraysEqual","two","trimSlashes","escapeForDumbFirefox36","strictEncodeURIComponent","_parts","urn","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","parens","defaultPorts","http","https","ftp","gopher","wss","hostProtocols","invalid_hostname_characters","domAttributes","blockquote","audio","video","getDomAttribute","iso8859","unescape","%24","%26","%2B","%2C","%3B","%3D","%3A","%40","/","?","#","reserved","%2F","%3F","%23","%5B","%5D","%21","%27","%28","%29","%2A","urnpath","encodeQuery","decodeQuery","_part","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","generateSimpleAccessor","build","generatePrefixAccessor","decodePath","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parseAuthority","parseHost","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","splits","requireAbsolutePath","buildAuthority","buildHost","buildUserinfo","buildQuery","buildQueryParameter","addQuery","removeQuery","hasQuery","withinArray","joinPaths","nonEmptySegments","segment","uri","commonPath","withinString","_end","_trim","_parens","_attributeOpen","ignoreHtml","attributeOpen","parensEnd","parensMatch","parensMatchEnd","hasHostname","rejectEmptyHostname","removeAll","unconflicted","URITemplate","deferBuild","_deferred_build","_string","_object","ip","ip4","ip6","sld","idn","_protocol","_port","_hostname","scheme","authority","userinfo","resource","subdomain","sub","tld","directory","filename","decodePathSegment","mutatedDirectory","normalizePath","absolute","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","_was_relative","_parent","_pos","_leadingParents","normalizePathname","normalizeSearch","normalizeHash","readable","qp","kv","basedir","relativeTo","relativeParts","baseParts","relativePath","basePath","one_map","two_map","one_query","two_query","./IPv6","./SecondLevelDomains","./punycode","use-debounce","useDebounce_1","useDebounce","useDebouncedCallback","useThrottledCallback_1","useThrottledCallback","./useDebounce","./useThrottledCallback","whatwg-fetch","Blob","viewClasses","isArrayBufferView","isView","normalizeName","normalizeValue","iteratorFor","Headers","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","Uint8Array","byteLength","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","arrayBuffer","readAsText","readArrayBufferAsText","formData","oldValue","Request","upcased","credentials","signal","referrer","bytes","Response","bodyInit","redirectStatuses","redirect","DOMException","fetch","aborted","abortXhr","rawHeaders","responseURL","withCredentials","WHATWGFetch"],"mappings":"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BACR,CACD1oC,KAAM,IACN0oC,QAAS,wBACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,sBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,+CACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,sCACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,uCACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,OACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,aACR,CACD1oC,KAAM,IACN0oC,QAAS,iBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,IACN0oC,QAAS,mCACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,wBACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,uBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,+CACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,sBACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,sCACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,eACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBAEPC,EAAe,IAAI1oI,OAAO,IAAMwoI,EAAW/1K,KAAI,SAAUzI,GAC3D,OAAOA,EAAEy+K,WACR/1K,KAAK,IAAM,IAAK,KACfi2K,EAAkB,GACbrqL,EAAI,EAAGA,EAAIkqL,EAAWxpL,OAAQV,IAErC,IADA,IAAIsqL,EAAYJ,EAAWlqL,GAClBwX,EAAI,EAAGA,EAAI8yK,EAAUH,QAAQzpL,OAAQ8W,IAC5C6yK,EAAgBC,EAAUH,QAAQ3yK,IAAM8yK,EAAU7oC,KAGtD,IAAI8oC,EAAkB,SAAyB/uK,GAC7C,OAAOA,EAAIpK,QAAQg5K,GAAc,SAAUp5K,GACzC,OAAOq5K,EAAgBr5K,OAIvBw5K,EAAkC7D,EAAmB,QAAY4D,GACjEE,EAAa,SAAoBjvK,GACnC,OAAOA,EAAIpK,QAAQ,aAAc,KAE/Bs5K,EAAmB,SAA0B5B,GAC/C,MAAO,GAAGtuK,OAAOsuK,EAAOj4K,MAAO,KAAK2J,OAAOsuK,EAAO5kL,QAEhDymL,EAAe,SAAsBl8J,GACvC,OAAO,SAAUq6J,EAAQ8B,GAEvB,GAAI9B,EAAOj8J,KAAKg+J,UAAW,OAAO,EAClC,IAAIC,EAAwBvE,EAAc,CACtCpqH,YAAY,EACZ4uH,eAAe,EACf9wK,UAAWywK,EACX7oH,MAAM,EACNmpH,UAAW,OACVv8J,GACH0tC,EAAa2uH,EAAsB3uH,WACnC4uH,EAAgBD,EAAsBC,cACtC9wK,EAAY6wK,EAAsB7wK,UAClC4nD,EAAOipH,EAAsBjpH,KAC7BmpH,EAAYF,EAAsBE,UAChC3hL,EAAQw4D,EAAO4oH,EAAWG,GAAYA,EACtCK,EAAYppH,EAAO4oH,EAAWxwK,EAAU6uK,IAAW7uK,EAAU6uK,GASjE,OARI3sH,IACF9yD,EAAQA,EAAM4T,cACdguK,EAAYA,EAAUhuK,eAEpB8tK,IACF1hL,EAAQmhL,EAAgCnhL,GACxC4hL,EAAYV,EAAgBU,IAET,UAAdD,EAAwBC,EAAUC,OAAO,EAAG7hL,EAAM3I,UAAY2I,EAAQ4hL,EAAU9jL,QAAQkC,IAAU,IAIzG8vK,EAAY,CAAC,YACjB,SAASgS,EAAWh+K,GAClB,IAAIi+K,EAAWj+K,EAAKi+K,SAClBlpL,EAAQwkL,EAAyBv5K,EAAMgsK,GAErCkS,EAAgBj1K,EAAMk1K,YAAYppL,EAAO,WAAY,KAAM,QAAS,OAAQ,UAChF,OAAO6N,EAAM6B,IAAI,QAASxN,EAAS,CACjCqI,IAAK2+K,GACJC,EAAe,CAChBn9K,IAAkB6B,EAAM7B,IAAI,CAC1B2C,MAAO,aAEP06K,WAAY,EACZC,OAAQ,EAERC,WAAY,cACZC,SAAU,UACVzqC,SAAU,gBACV0qC,QAAS,EACTljK,QAAS,EAETM,MAAO,EAEP4oI,MAAO,cAEPhrI,MAAO,IACP1D,QAAS,EACTxM,SAAU,WACV2f,UAAW,cACe,eAAzBnmB,EAAQC,IAAIC,SAA4B,GAAK,qBAA+C,eAAzBF,EAAQC,IAAIC,SAA4B,GAAK,k2DAwGvH,IAAIy7K,EAAa,CAAC,YAAa,SAAU,WAAY,eAAgB,YACjEC,EAAc,CAChBC,UAAW,aAEX7gK,SAAU,SACVxU,SAAU,WACVuS,OAAQ,QAEV,SAAS+iK,EAAiBnsL,GACxBA,EAAEurJ,iBAEJ,SAAS6gC,EAAepsL,GACtBA,EAAEwrJ,kBAEJ,SAAS6gC,IACP,IAAInlK,EAAMvjB,KAAKwzB,UACXm1J,EAAc3oL,KAAKg3B,aACnB4xJ,EAAgBrlK,EAAMvjB,KAAK40B,aACnB,IAARrR,EACFvjB,KAAKwzB,UAAY,EACRo1J,IAAkBD,IAC3B3oL,KAAKwzB,UAAYjQ,EAAM,GAM3B,SAASslK,IACP,MAAO,iBAAkBn3K,QAAUkqC,UAAUktI,eAE/C,IAAIhH,IAAiC,oBAAXpwK,SAA0BA,OAAOjJ,WAAYiJ,OAAOjJ,SAASW,eACnF2/K,EAAoB,EACpBC,EAAkB,CACpB5lI,SAAS,EACT7pB,SAAS,GA4FX,IAAI0vJ,EAAkB,SAAyBtoH,GAC7C,IAAIzwD,EAAUywD,EAAMjiE,OACpB,OAAOwR,EAAQ0hB,cAAc0pH,eAAiBprI,EAAQ0hB,cAAc0pH,cAAc4tC,QAEhFC,EAAmC,eAAzBz8K,EAAQC,IAAIC,SAA4B,CACpD/F,KAAM,UACNgI,OAAQ,gDACN,CACFhI,KAAM,uBACNgI,OAAQ,oEACR+B,IAAK,kgFACLhK,SAZF,WAAgD,MAAO,oOAcvD,SAASwiL,EAAcx/K,GACrB,IAAI0B,EAAW1B,EAAK0B,SAClB+9K,EAAcz/K,EAAKy/K,YACnBC,EAAsB1/K,EAAK2/K,eAMzBC,EApPN,SAA0B5/K,GACxB,IAAI6/K,EAAY7/K,EAAK6/K,UACnBC,EAAiB9/K,EAAK8/K,eACtBC,EAAgB//K,EAAK+/K,cACrBC,EAAchgL,EAAKggL,YACnBC,EAAajgL,EAAKigL,WAChBC,EAAWpiL,EAAMyH,QAAO,GACxBuf,EAAQhnB,EAAMyH,QAAO,GACrB46K,EAAariL,EAAMyH,OAAO,GAC1B66K,EAAetiL,EAAMyH,OAAO,MAC5B86K,EAAmBviL,EAAMu6J,aAAY,SAAUthG,EAAOupH,GACxD,GAA6B,OAAzBF,EAAaj6K,QAAjB,CACA,IAAIo6K,EAAwBH,EAAaj6K,QACvCyjB,EAAY22J,EAAsB32J,UAClCwD,EAAemzJ,EAAsBnzJ,aACrCL,EAAewzJ,EAAsBxzJ,aACnCj4B,EAASsrL,EAAaj6K,QACtBq6K,EAAkBF,EAAQ,EAC1BG,EAAkBrzJ,EAAeL,EAAenD,EAChD82J,GAAqB,EAGrBD,EAAkBH,GAASJ,EAAS/5K,UAClC45K,GAAeA,EAAchpH,GACjCmpH,EAAS/5K,SAAU,GAEjBq6K,GAAmB17J,EAAM3e,UACvB85K,GAAYA,EAAWlpH,GAC3BjyC,EAAM3e,SAAU,GAIdq6K,GAAmBF,EAAQG,GACzBX,IAAmBI,EAAS/5K,SAC9B25K,EAAe/oH,GAEjBjiE,EAAO80B,UAAYwD,EACnBszJ,GAAqB,EACrBR,EAAS/5K,SAAU,IAGTq6K,IAAoBF,EAAQ12J,IAClCo2J,IAAgBl7J,EAAM3e,SACxB65K,EAAYjpH,GAEdjiE,EAAO80B,UAAY,EACnB82J,GAAqB,EACrB57J,EAAM3e,SAAU,GAIdu6K,GAvDW,SAAsB3pH,GACvCA,EAAMinF,iBACNjnF,EAAMknF,kBAsDF0iC,CAAa5pH,MAEd,CAAC+oH,EAAgBC,EAAeC,EAAaC,IAC5CW,EAAU9iL,EAAMu6J,aAAY,SAAUthG,GACxCspH,EAAiBtpH,EAAOA,EAAMysF,UAC7B,CAAC68B,IACAQ,EAAe/iL,EAAMu6J,aAAY,SAAUthG,GAE7CopH,EAAWh6K,QAAU4wD,EAAMosF,eAAe,GAAG7D,UAC5C,IACCwhC,EAAchjL,EAAMu6J,aAAY,SAAUthG,GAC5C,IAAIysF,EAAS28B,EAAWh6K,QAAU4wD,EAAMosF,eAAe,GAAG7D,QAC1D+gC,EAAiBtpH,EAAOysF,KACvB,CAAC68B,IACAU,EAAiBjjL,EAAMu6J,aAAY,SAAUnqI,GAE/C,GAAKA,EAAL,CACA,IAAI8yJ,IAAa/3K,EAAMg4K,uBAAwB,CAC7CtxJ,SAAS,GAEXzB,EAAGwB,iBAAiB,QAASkxJ,EAASI,GACtC9yJ,EAAGwB,iBAAiB,aAAcmxJ,EAAcG,GAChD9yJ,EAAGwB,iBAAiB,YAAaoxJ,EAAaE,MAC7C,CAACF,EAAaD,EAAcD,IAC3BM,EAAgBpjL,EAAMu6J,aAAY,SAAUnqI,GAEzCA,IACLA,EAAGuD,oBAAoB,QAASmvJ,GAAS,GACzC1yJ,EAAGuD,oBAAoB,aAAcovJ,GAAc,GACnD3yJ,EAAGuD,oBAAoB,YAAaqvJ,GAAa,MAChD,CAACA,EAAaD,EAAcD,IAS/B,OARA9iL,EAAMi5J,WAAU,WACd,GAAK8oB,EAAL,CACA,IAAIv5K,EAAU85K,EAAaj6K,QAE3B,OADA46K,EAAez6K,GACR,WACL46K,EAAc56K,OAEf,CAACu5K,EAAWkB,EAAgBG,IACxB,SAAU56K,GACf85K,EAAaj6K,QAAUG,GAwJI66K,CAAiB,CAC5CtB,eANyC,IAAxBH,GAAwCA,EAOzDI,eANiB9/K,EAAK8/K,eAOtBC,cANgB//K,EAAK+/K,cAOrBC,YANchgL,EAAKggL,YAOnBC,WANajgL,EAAKigL,aAQhBmB,EAvHN,SAAuBphL,GACrB,IAAI6/K,EAAY7/K,EAAK6/K,UACnBwB,EAAwBrhL,EAAKshL,qBAC7BA,OAAiD,IAA1BD,GAA0CA,EAC/DE,EAAiBzjL,EAAMyH,OAAO,IAC9B66K,EAAetiL,EAAMyH,OAAO,MAC5Bi8K,EAAgB1jL,EAAMu6J,aAAY,SAAUopB,GAC9C,GAAKvJ,EAAL,CACA,IAAIpjL,EAAS+J,SAASsrB,KAClBu3J,EAAc5sL,GAAUA,EAAOizD,MAUnC,GATIu5H,GAEF7C,EAAWjlL,SAAQ,SAAUlE,GAC3B,IAAI81D,EAAMs2H,GAAeA,EAAYpsL,GACrCisL,EAAep7K,QAAQ7Q,GAAO81D,KAK9Bk2H,GAAwBnC,EAAoB,EAAG,CACjD,IAAIwC,EAAiBjgH,SAAS6/G,EAAep7K,QAAQy7K,aAAc,KAAO,EACtE90J,EAAcjuB,SAASsrB,KAAOtrB,SAASsrB,KAAK2C,YAAc,EAC1D+0J,EAAkB/5K,OAAOg6K,WAAah1J,EAAc60J,GAAkB,EAC1EvsL,OAAOgE,KAAKslL,GAAallL,SAAQ,SAAUlE,GACzC,IAAI81D,EAAMszH,EAAYppL,GAClBosL,IACFA,EAAYpsL,GAAO81D,MAGnBs2H,IACFA,EAAYE,aAAe,GAAGv0K,OAAOw0K,EAAiB,OAKtD/sL,GAAUmqL,MAEZnqL,EAAO46B,iBAAiB,YAAakvJ,EAAkBQ,GAGnDqC,IACFA,EAAkB/xJ,iBAAiB,aAAcovJ,EAAsBM,GACvEqC,EAAkB/xJ,iBAAiB,YAAamvJ,EAAgBO,KAKpED,GAAqB,KACpB,CAACmC,IACAS,EAAmBjkL,EAAMu6J,aAAY,SAAUopB,GACjD,GAAKvJ,EAAL,CACA,IAAIpjL,EAAS+J,SAASsrB,KAClBu3J,EAAc5sL,GAAUA,EAAOizD,MAGnCo3H,EAAoB9lK,KAAKC,IAAI6lK,EAAoB,EAAG,GAGhDmC,GAAwBnC,EAAoB,GAC9CV,EAAWjlL,SAAQ,SAAUlE,GAC3B,IAAI81D,EAAMm2H,EAAep7K,QAAQ7Q,GAC7BosL,IACFA,EAAYpsL,GAAO81D,MAMrBt2D,GAAUmqL,MACZnqL,EAAO28B,oBAAoB,YAAamtJ,EAAkBQ,GACtDqC,IACFA,EAAkBhwJ,oBAAoB,aAAcqtJ,EAAsBM,GAC1EqC,EAAkBhwJ,oBAAoB,YAAaotJ,EAAgBO,QAGtE,CAACkC,IASJ,OARAxjL,EAAMi5J,WAAU,WACd,GAAK8oB,EAAL,CACA,IAAIv5K,EAAU85K,EAAaj6K,QAE3B,OADAq7K,EAAcl7K,GACP,WACLy7K,EAAiBz7K,OAElB,CAACu5K,EAAW2B,EAAeO,IACvB,SAAUz7K,GACf85K,EAAaj6K,QAAUG,GAkCC07K,CAAc,CACtCnC,UAAWJ,IAMb,OAAO78K,EAAM6B,IAAI3G,EAAMyD,SAAU,KAAMk+K,GAAe78K,EAAM6B,IAAI,MAAO,CACrEg3J,QAAS4jB,EACTt+K,IAAKw+K,IACH79K,GAPY,SAAmB4E,GACjCs5K,EAAuBt5K,GACvB86K,EAAoB96K,OASxB,IAAI/F,EAAiC,eAAzBuC,EAAQC,IAAIC,SAA4B,CAClD/F,KAAM,wBACNgI,OAAQ,0GACN,CACFhI,KAAM,qCACNgI,OAAQ,8HACR+B,IAAK,ssCACLhK,SARF,WAA8C,MAAO,oOA0BjDilL,EAhBgB,SAAuBjiL,GACzC,IAAI/C,EAAO+C,EAAK/C,KACdi9K,EAAUl6K,EAAKk6K,QACjB,OAAOt3K,EAAM6B,IAAI,QAAS,CACxB+0D,UAAU,EACVv8D,KAAMA,EACNilL,UAAW,EACXC,cAAe,OACfjI,QAASA,EACTn5K,IAAKR,EAGLxJ,MAAO,GACPgjL,SAAU,gBAQVqI,EAAmB,SAAwBzG,GAC7C,OAAOA,EAAOj4K,OAEZ2+K,EAAmB,SAAwB1G,GAC7C,OAAOA,EAAO5kL,OAMZurL,EAAgB,CAClBC,eAAgBt5K,EAAMu5K,kBACtB/8K,UAAWwD,EAAMw5K,aACjBC,QAASz5K,EAAMlI,IACf4hL,kBAAmB15K,EAAM25K,qBACzBx0H,MAAOnlD,EAAM45K,SACbC,aAAc75K,EAAM85K,gBACpBC,oBAAqB/5K,EAAMg6K,uBAC3BC,mBAAoBj6K,EAAMk6K,sBAC1BjnL,MAAO+M,EAAMm6K,SACbC,iBAAkBp6K,EAAMq6K,oBACxBC,eAAgBt6K,EAAMu6K,kBACtBC,KAAMx6K,EAAMy6K,QACZC,SAAU16K,EAAM26K,YAChBC,WAAY56K,EAAM66K,cAClBC,WAAY96K,EAAM+6K,cAClBC,gBAAiBh7K,EAAMi7K,mBACvBC,iBAAkBl7K,EAAMm7K,oBACxBC,iBAAkBp7K,EAAMq7K,oBACxB3I,OAAQ1yK,EAAMs7K,UACdC,YAAav7K,EAAMw7K,eACnBC,YAAaz7K,EAAM07K,MACnBC,eAAgB37K,EAAM47K,mBAwBxB,IA+BIC,EAAe,CACjBC,aAbiB,EAcjBC,OAjCW,CACXC,QAAS,UACTC,UAAW,UACXC,UAAW,UACXC,UAAW,UACXC,OAAQ,UACRC,YAAa,UACbC,SAAU,mBACVC,SAAU,kBACVC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,kBACXC,UAAW,mBAiBXC,QARY,CACZC,SANa,EAObC,cALkB,GAMlBC,WAJeF,IAYb/mG,GAAe,CACjBw9F,YAAa,SACb0J,uBAAuB,EACvBC,kBAAmBt9K,EAAMu9K,iBACzBC,mBAAoBx9K,EAAMu9K,iBAC1BrvK,WAAY,GACZuvK,mBAAmB,EACnBC,mBAAmB,EACnBC,WAAY,GACZC,0BAA0B,EAC1BC,mBAAmB,EACnBC,aAAcvJ,IACdwJ,iBA5GqB,SAA0B54H,GAC/C,OAAOA,EAAM1qD,OA4Gby3K,eAAgBiH,EAChB6E,eAAgB5E,EAChB5c,YAAY,EACZyhB,WAAW,EACXrN,SAAS,EACTsN,OAAO,EACPvN,cAAc,EACdwB,iBA3GqB,SAA0BO,GAC/C,QAASA,EAAOlW,YA2GhB8d,eAAgB,WACd,MAAO,cAET6D,cAAe,IACfC,cAAe,IACfhM,YAAY,EACZiM,cAAe,SACfC,aAAc,WACdC,uBAAuB,EACvBC,0BAA2Bx+K,EAAMy+K,iBACjCrD,iBAAkB,WAChB,MAAO,cAETsD,iBAAiB,EACjBC,iBAAiB,EACjBh8K,QAAS,GACTi8K,SAAU,EACVrD,YAAa,YACblJ,mBAAoB,SAA4Bt7K,GAC9C,IAAIyzD,EAAQzzD,EAAKyzD,MACjB,MAAO,GAAGpmD,OAAOomD,EAAO,WAAWpmD,OAAiB,IAAVomD,EAAc,IAAM,GAAI,eAEpExuD,OAAQ,GACRi9K,SAAU,EACVpI,iBAAiB,EACjBgO,UAAU,GAEZ,SAASC,GAAoBhzL,EAAO4mL,EAAQtB,EAAapxK,GAKvD,MAAO,CACLpH,KAAM,SACN6d,KAAMi8J,EACNlW,WAPeuiB,GAAkBjzL,EAAO4mL,EAAQtB,GAQhDC,WAPe2N,GAAkBlzL,EAAO4mL,EAAQtB,GAQhD32K,MAPUy3K,GAAepmL,EAAO4mL,GAQhC5kL,MAPUkwL,GAAelyL,EAAO4mL,GAQhC1yK,MAAOA,GAGX,SAASi/K,GAAwBnzL,EAAOslL,GACtC,OAAOtlL,EAAM6W,QAAQ5E,KAAI,SAAUmhL,EAAeC,GAChD,GAAI,YAAaD,EAAe,CAC9B,IAAIE,EAAqBF,EAAcv8K,QAAQ5E,KAAI,SAAU20K,EAAQ2M,GACnE,OAAOP,GAAoBhzL,EAAO4mL,EAAQtB,EAAaiO,MACtDhvL,QAAO,SAAUivL,GAClB,OAAOC,GAAYzzL,EAAOwzL,MAE5B,OAAOF,EAAmB90L,OAAS,EAAI,CACrCsO,KAAM,QACN6d,KAAMyoK,EACNv8K,QAASy8K,EACTp/K,MAAOm/K,QACL9rL,EAEN,IAAIisL,EAAoBR,GAAoBhzL,EAAOozL,EAAe9N,EAAa+N,GAC/E,OAAOI,GAAYzzL,EAAOwzL,GAAqBA,OAAoBjsL,KAClEhD,OAAO2P,EAAMw/K,YAElB,SAASC,GAA4CL,GACnD,OAAOA,EAAmBpvK,QAAO,SAAU0vK,EAAoBJ,GAQ7D,MAP+B,UAA3BA,EAAkB1mL,KACpB8mL,EAAmB5vL,KAAKtC,MAAMkyL,EAAoB/3F,EAAmB23F,EAAkB38K,QAAQ5E,KAAI,SAAU20K,GAC3G,OAAOA,EAAOj8J,UAGhBipK,EAAmB5vL,KAAKwvL,EAAkB7oK,MAErCipK,IACN,IAKL,SAASH,GAAYzzL,EAAOwzL,GAC1B,IAAIK,EAAoB7zL,EAAM0lL,WAC5BA,OAAmC,IAAtBmO,EAA+B,GAAKA,EAC/ClpK,EAAO6oK,EAAkB7oK,KAC3B46J,EAAaiO,EAAkBjO,WAC/B52K,EAAQ6kL,EAAkB7kL,MAC1B3M,EAAQwxL,EAAkBxxL,MAC5B,QAAS8xL,GAA0B9zL,KAAWulL,IAAewO,GAAc/zL,EAAO,CAChF2O,MAAOA,EACP3M,MAAOA,EACP2oB,KAAMA,GACL+6J,GAuBL,IAAIU,GAAiB,SAAwBpmL,EAAO2qB,GAClD,OAAO3qB,EAAMomL,eAAez7J,IAE1BunK,GAAiB,SAAwBlyL,EAAO2qB,GAClD,OAAO3qB,EAAMkyL,eAAevnK,IAE9B,SAASsoK,GAAkBjzL,EAAO4mL,EAAQtB,GACxC,MAAyC,mBAA3BtlL,EAAMqmL,kBAAkCrmL,EAAMqmL,iBAAiBO,EAAQtB,GAEvF,SAAS4N,GAAkBlzL,EAAO4mL,EAAQtB,GACxC,GAAIA,EAAYrgL,QAAQ2hL,IAAW,EAAG,OAAO,EAC7C,GAAsC,mBAA3B5mL,EAAMg0L,iBACf,OAAOh0L,EAAMg0L,iBAAiBpN,EAAQtB,GAExC,IAAIyD,EAAYmJ,GAAelyL,EAAO4mL,GACtC,OAAOtB,EAAYr8J,MAAK,SAAUnrB,GAChC,OAAOo0L,GAAelyL,EAAOlC,KAAOirL,KAGxC,SAASgL,GAAc/zL,EAAO4mL,EAAQlB,GACpC,OAAO1lL,EAAMgyL,cAAehyL,EAAMgyL,aAAapL,EAAQlB,GAEzD,IAAIoO,GAA4B,SAAmC9zL,GACjE,IAAIi0L,EAAsBj0L,EAAMi0L,oBAC9BnP,EAAU9kL,EAAM8kL,QAClB,YAA4Bv9K,IAAxB0sL,EAA0CnP,EACvCmP,GAELC,GAAa,EACbC,GAAsB,SAAUC,GAClCtuF,EAAUquF,EAAQC,GAClB,IAAIC,EAAS/P,EAAa6P,GAY1B,SAASA,EAAOG,GACd,IAAI72K,EA2gBJ,GA1gBAghF,EAAgBp9F,KAAM8yL,IACtB12K,EAAQ42K,EAAO91L,KAAK8C,KAAMizL,IACpB7sK,MAAQ,CACZo+J,cAAe,KACfC,cAAe,KACfC,aAAc,KACdwO,eAAe,EACftO,WAAW,EACXX,YAAa,GACbkP,yBAAyB,EACzBC,gBAAgB,EAChBC,8BAA0BntL,EAC1BotL,eAAWptL,GAEbkW,EAAMm3K,kBAAmB,EACzBn3K,EAAMo3K,aAAc,EACpBp3K,EAAMq3K,iBAAc,EACpBr3K,EAAMs3K,cAAgB,EACtBt3K,EAAMu3K,cAAgB,EACtBv3K,EAAMw3K,eAAiB,GACvBx3K,EAAMy3K,gBAAiB,EACvBz3K,EAAM03K,+BAAgC,EACtC13K,EAAM23K,oBAAiB,EACvB33K,EAAM43K,WAAa,KACnB53K,EAAM63K,cAAgB,SAAU/qL,GAC9BkT,EAAM43K,WAAa9qL,GAErBkT,EAAM83K,iBAAmB,KACzB93K,EAAM+3K,oBAAsB,SAAUjrL,GACpCkT,EAAM83K,iBAAmBhrL,GAE3BkT,EAAMg4K,YAAc,KACpBh4K,EAAMi4K,eAAiB,SAAUnrL,GAC/BkT,EAAMg4K,YAAclrL,GAEtBkT,EAAMk4K,SAAW,KACjBl4K,EAAMm4K,YAAc,SAAUrrL,GAC5BkT,EAAMk4K,SAAWprL,GAEnBkT,EAAM0mH,MAAQ1mH,EAAMo4K,WACpBp4K,EAAM8sK,KAAO9sK,EAAMq4K,UACnBr4K,EAAMunK,SAAW,SAAU+Q,EAAUC,GACnC,IAAIC,EAAcx4K,EAAMzd,MACtBglL,EAAWiR,EAAYjR,SACvB98K,EAAO+tL,EAAY/tL,KACrB8tL,EAAW9tL,KAAOA,EAClBuV,EAAMy4K,aAAaH,EAAUC,GAC7BhR,EAAS+Q,EAAUC,IAErBv4K,EAAM4+H,SAAW,SAAU05C,EAAU90B,EAAQ2lB,GAC3C,IAAIuP,EAAe14K,EAAMzd,MACvB2xL,EAAoBwE,EAAaxE,kBACjC7M,EAAUqR,EAAarR,QACvBY,EAAayQ,EAAazQ,WAC5BjoK,EAAM24K,cAAc,GAAI,CACtBn1B,OAAQ,YACRo1B,eAAgB3Q,IAEdiM,IACFl0K,EAAM64K,SAAS,CACb5B,0BAA2B5P,IAE7BrnK,EAAM84K,eAGR94K,EAAM64K,SAAS,CACb9B,yBAAyB,IAE3B/2K,EAAMunK,SAAS+Q,EAAU,CACvB90B,OAAQA,EACR2lB,OAAQA,KAGZnpK,EAAM+4K,aAAe,SAAUT,GAC7B,IAAIU,EAAeh5K,EAAMzd,MACvBwxL,EAAoBiF,EAAajF,kBACjC1M,EAAU2R,EAAa3R,QACvB58K,EAAOuuL,EAAavuL,KAClBo9K,EAAc7nK,EAAMgK,MAAM69J,YAC1BoR,EAAa5R,GAAWrnK,EAAMu2K,iBAAiB+B,EAAUzQ,GACzD5U,EAAajzJ,EAAM4oK,iBAAiB0P,EAAUzQ,GAClD,GAAIoR,EAAY,CACd,IAAI3N,EAAYtrK,EAAMy0K,eAAe6D,GACrCt4K,EAAM4+H,SAASnoI,EAAMyiL,kBAAkBrR,EAAY/gL,QAAO,SAAUzG,GAClE,OAAO2f,EAAMy0K,eAAep0L,KAAOirL,MAChC,kBAAmBgN,OACnB,CAAA,GAAKrlB,EAaV,YALAjzJ,EAAMy4K,aAAahiL,EAAM0iL,mBAAmBb,GAAW,CACrD90B,OAAQ,gBACR2lB,OAAQmP,EACR7tL,KAAMA,IATJ48K,EACFrnK,EAAM4+H,SAASnoI,EAAMyiL,kBAAkB,GAAGr+K,OAAOujF,EAAmBypF,GAAc,CAACyQ,KAAa,gBAAiBA,GAEjHt4K,EAAM4+H,SAASnoI,EAAM0iL,mBAAmBb,GAAW,iBAUnDvE,GACF/zK,EAAMq4K,aAGVr4K,EAAMo5K,YAAc,SAAU/P,GAC5B,IAAIhC,EAAUrnK,EAAMzd,MAAM8kL,QACtBQ,EAAc7nK,EAAMgK,MAAM69J,YAC1ByD,EAAYtrK,EAAMy0K,eAAepL,GACjCgQ,EAAgBxR,EAAY/gL,QAAO,SAAUzG,GAC/C,OAAO2f,EAAMy0K,eAAep0L,KAAOirL,KAEjCgN,EAAW7hL,EAAM6iL,aAAajS,EAASgS,EAAeA,EAAc,IAAM,MAC9Er5K,EAAMunK,SAAS+Q,EAAU,CACvB90B,OAAQ,eACR6lB,aAAcA,IAEhBrpK,EAAMo4K,cAERp4K,EAAMu5K,WAAa,WACjB,IAAI1R,EAAc7nK,EAAMgK,MAAM69J,YAC9B7nK,EAAMunK,SAAS9wK,EAAM6iL,aAAat5K,EAAMzd,MAAM8kL,QAAS,GAAI,MAAO,CAChE7jB,OAAQ,QACR8lB,cAAezB,KAGnB7nK,EAAMw5K,SAAW,WACf,IAAInS,EAAUrnK,EAAMzd,MAAM8kL,QACtBQ,EAAc7nK,EAAMgK,MAAM69J,YAC1B4R,EAAoB5R,EAAYA,EAAY9mL,OAAS,GACrDs4L,EAAgBxR,EAAY7+K,MAAM,EAAG6+K,EAAY9mL,OAAS,GAC1Du3L,EAAW7hL,EAAM6iL,aAAajS,EAASgS,EAAeA,EAAc,IAAM,MAC9Er5K,EAAMunK,SAAS+Q,EAAU,CACvB90B,OAAQ,YACR6lB,aAAcoQ,KAGlBz5K,EAAM2+H,SAAW,WACf,OAAO3+H,EAAMgK,MAAM69J,aAErB7nK,EAAMnL,GAAK,WACT,IAAK,IAAIb,EAAOhQ,UAAUjD,OAAQmR,EAAO,IAAI7Q,MAAM2S,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E/B,EAAK+B,GAAQjQ,UAAUiQ,GAEzB,OAAOwC,EAAMkO,WAAW1gB,WAAM,EAAQ,CAAC+b,EAAMzd,MAAMm3L,iBAAiB7+K,OAAO3I,KAE7E8N,EAAM2oK,eAAiB,SAAUz7J,GAC/B,OAAOy7J,GAAe3oK,EAAMzd,MAAO2qB,IAErClN,EAAMy0K,eAAiB,SAAUvnK,GAC/B,OAAOunK,GAAez0K,EAAMzd,MAAO2qB,IAErClN,EAAM25K,UAAY,SAAU72L,EAAKP,GAC/B,IAAI+yL,EAAWt1K,EAAMzd,MAAM+yL,SACvBxzC,EAAOguC,EAAchtL,GAAKP,EAAO+yL,GACrCxzC,EAAKqqC,UAAY,aACjB,IAAIyN,EAAS55K,EAAMzd,MAAMkQ,OAAO3P,GAChC,OAAO82L,EAASA,EAAO93C,EAAMv/I,GAASu/I,GAExC9hI,EAAM65K,cAAgB,SAAU/2L,EAAKP,GACnC,IAAIu3L,EAAuBC,EAC3B,OAA4F,QAApFD,GAAyBC,EAAyB/5K,EAAMzd,MAAMoiB,YAAY7hB,UAA4C,IAA1Bg3L,OAAmC,EAASA,EAAsBh5L,KAAKi5L,EAAwBx3L,IAErMyd,EAAMg6K,aAAe,SAAUlmL,GAC7B,MAAO,GAAG+G,OAAOmF,EAAMw3K,eAAgB,KAAK38K,OAAO/G,IAErDkM,EAAMi6K,cAAgB,WACpB,OAAOxjL,EAAMyjL,kBAAkBl6K,EAAMzd,QAEvCyd,EAAM01K,wBAA0B,WAC9B,OAAOA,GAAwB11K,EAAMzd,MAAOyd,EAAMgK,MAAM69J,cAE1D7nK,EAAMm6K,sBAAwB,WAC5B,OAAOn6K,EAAMzd,MAAMsmL,WAAa7oK,EAAM01K,0BAA4B,IAEpE11K,EAAMo6K,sBAAwB,WAC5B,OAAOlE,GAA4Cl2K,EAAM01K,4BAE3D11K,EAAMq6K,oBAAsB,WAC1B,OAAOr6K,EAAMzd,MAAMsmL,WAAa7oK,EAAMo6K,wBAA0B,IAElEp6K,EAAMy4K,aAAe,SAAUl0L,EAAOg0L,GACpCv4K,EAAM64K,SAAS,CACbzQ,cAAexB,EAAc,CAC3BriL,MAAOA,GACNg0L,MAGPv4K,EAAMs6K,gBAAkB,SAAU/1H,GACX,IAAjBA,EAAMgpF,SAGVhpF,EAAMknF,kBACNlnF,EAAMinF,iBACNxrI,EAAMo4K,eAERp4K,EAAMu6K,gBAAkB,SAAUh2H,GAChCvkD,EAAMm3K,kBAAmB,GAE3Bn3K,EAAMw6K,mBAAqB,SAAUj2H,GAEnC,IAAIA,EAAM8mF,iBAAV,CAGA,IAAI+pC,EAAkBp1K,EAAMzd,MAAM6yL,gBAC7Bp1K,EAAMgK,MAAMw+J,UAKLxoK,EAAMzd,MAAMsmL,WAKO,UAAzBtkH,EAAMjiE,OAAO0+J,SAAgD,aAAzBz8F,EAAMjiE,OAAO0+J,SACnDhhJ,EAAM84K,cALJ1D,GACFp1K,EAAMy6K,SAAS,UANbrF,IACFp1K,EAAMy3K,gBAAiB,GAEzBz3K,EAAMo4K,cAUqB,UAAzB7zH,EAAMjiE,OAAO0+J,SAAgD,aAAzBz8F,EAAMjiE,OAAO0+J,SACnDz8F,EAAMinF,mBAGVxrI,EAAM06K,6BAA+B,SAAUn2H,GAE7C,KAAIA,GAAwB,cAAfA,EAAMl1D,MAAyC,IAAjBk1D,EAAMgpF,QAG7CvtI,EAAMzd,MAAM0wK,YAAhB,CACA,IAAI0nB,EAAe36K,EAAMzd,MACvB8kL,EAAUsT,EAAatT,QACvBwB,EAAa8R,EAAa9R,WAC5B7oK,EAAMo4K,aACFvP,GACF7oK,EAAM64K,SAAS,CACb5B,0BAA2B5P,IAE7BrnK,EAAM84K,eAEN94K,EAAMy6K,SAAS,SAEjBl2H,EAAMinF,mBAERxrI,EAAM46K,0BAA4B,SAAUr2H,GAEtCA,GAAwB,cAAfA,EAAMl1D,MAAyC,IAAjBk1D,EAAMgpF,SAGjDvtI,EAAMu5K,aACNh1H,EAAMinF,iBACNxrI,EAAMy3K,gBAAiB,EACJ,aAAflzH,EAAMl1D,KACR2Q,EAAMo4K,aAENh6J,YAAW,WACT,OAAOpe,EAAMo4K,kBAInBp4K,EAAM66K,SAAW,SAAUt2H,GACoB,kBAAlCvkD,EAAMzd,MAAM4xL,kBACjB5vH,EAAMjiE,kBAAkBkK,aAAeiK,EAAMqkL,kBAAkBv2H,EAAMjiE,SACvE0d,EAAMzd,MAAMu2L,cAEoC,mBAAlC94K,EAAMzd,MAAM4xL,mBACxBn0K,EAAMzd,MAAM4xL,kBAAkB5vH,IAChCvkD,EAAMzd,MAAMu2L,eAIlB94K,EAAM+6K,mBAAqB,WACzB/6K,EAAMo3K,aAAc,GAEtBp3K,EAAMg7K,iBAAmB,WACvBh7K,EAAMo3K,aAAc,GAEtBp3K,EAAMquK,aAAe,SAAUtgL,GAC7B,IAAI0iJ,EAAU1iJ,EAAM0iJ,QAChBwqC,EAAQxqC,GAAWA,EAAQ/1F,KAAK,GAC/BugI,IAGLj7K,EAAMs3K,cAAgB2D,EAAMpuC,QAC5B7sI,EAAMu3K,cAAgB0D,EAAMnuC,QAC5B9sI,EAAM23K,gBAAiB,IAEzB33K,EAAMsuK,YAAc,SAAUlzF,GAC5B,IAAIq1D,EAAUr1D,EAAMq1D,QAChBwqC,EAAQxqC,GAAWA,EAAQ/1F,KAAK,GACpC,GAAKugI,EAAL,CAGA,IAAInqC,EAASjqI,KAAKkpD,IAAIkrH,EAAMpuC,QAAU7sI,EAAMs3K,eACxCtmC,EAASnqI,KAAKkpD,IAAIkrH,EAAMnuC,QAAU9sI,EAAMu3K,eAE5Cv3K,EAAM23K,eAAiB7mC,EADH,GAC6BE,EAD7B,IAGtBhxI,EAAMk7K,WAAa,SAAU32H,GACvBvkD,EAAM23K,iBAKN33K,EAAM43K,aAAe53K,EAAM43K,WAAWj7F,SAASp4B,EAAMjiE,SAAW0d,EAAMg4K,cAAgBh4K,EAAMg4K,YAAYr7F,SAASp4B,EAAMjiE,SACzH0d,EAAMq4K,YAIRr4K,EAAMs3K,cAAgB,EACtBt3K,EAAMu3K,cAAgB,IAExBv3K,EAAMm7K,kBAAoB,SAAU52H,GAC9BvkD,EAAM23K,gBACV33K,EAAMw6K,mBAAmBj2H,IAE3BvkD,EAAMo7K,yBAA2B,SAAU72H,GACrCvkD,EAAM23K,gBACV33K,EAAM46K,0BAA0Br2H,IAElCvkD,EAAMq7K,4BAA8B,SAAU92H,GACxCvkD,EAAM23K,gBACV33K,EAAM06K,6BAA6Bn2H,IAErCvkD,EAAMs7K,kBAAoB,SAAU/2H,GAClC,IAAIq0H,EAAiB54K,EAAMzd,MAAM0lL,WAC7BA,EAAa1jH,EAAM4mF,cAAc5mJ,MACrCyb,EAAM64K,SAAS,CACb5B,0BAA0B,IAE5Bj3K,EAAM24K,cAAc1Q,EAAY,CAC9BzkB,OAAQ,eACRo1B,eAAgBA,IAEb54K,EAAMzd,MAAMsmL,YACf7oK,EAAMu7K,cAGVv7K,EAAMw7K,aAAe,SAAUj3H,GACzBvkD,EAAMzd,MAAMmlL,SACd1nK,EAAMzd,MAAMmlL,QAAQnjH,GAEtBvkD,EAAM64K,SAAS,CACb5B,0BAA0B,EAC1BzO,WAAW,KAETxoK,EAAMy3K,gBAAkBz3K,EAAMzd,MAAM4yL,kBACtCn1K,EAAMy6K,SAAS,SAEjBz6K,EAAMy3K,gBAAiB,GAEzBz3K,EAAMy7K,YAAc,SAAUl3H,GAC5B,IAAIq0H,EAAiB54K,EAAMzd,MAAM0lL,WAC7BjoK,EAAMg4K,aAAeh4K,EAAMg4K,YAAYr7F,SAAStwF,SAAS6yI,eAC3Dl/H,EAAMk4K,SAASxxD,SAGb1mH,EAAMzd,MAAMm5L,QACd17K,EAAMzd,MAAMm5L,OAAOn3H,GAErBvkD,EAAM24K,cAAc,GAAI,CACtBn1B,OAAQ,aACRo1B,eAAgBA,IAElB54K,EAAM84K,cACN94K,EAAM64K,SAAS,CACbvQ,aAAc,KACdE,WAAW,MAGfxoK,EAAM27K,cAAgB,SAAUtT,GAC1BroK,EAAMm3K,kBAAoBn3K,EAAMgK,MAAMq+J,gBAAkBA,GAG5DroK,EAAM64K,SAAS,CACbxQ,cAAeA,KAGnBroK,EAAMq2K,0BAA4B,WAChC,OAAOA,GAA0Br2K,EAAMzd,QAEzCyd,EAAM47K,kBAAoB,SAAU37L,GAClCA,EAAEurJ,iBACFvrJ,EAAEwrJ,kBACFzrI,EAAM0mH,SAER1mH,EAAM67K,UAAY,SAAUt3H,GAC1B,IAAIu3H,EAAe97K,EAAMzd,MACvB8kL,EAAUyU,EAAazU,QACvByM,EAAwBgI,EAAahI,sBACrCQ,EAAoBwH,EAAaxH,kBACjCrM,EAAa6T,EAAa7T,WAC1B8T,EAAcD,EAAaC,YAC3B9oB,EAAa6oB,EAAa7oB,WAC1B4V,EAAaiT,EAAajT,WAC1BgT,EAAYC,EAAaD,UACzBvU,EAAkBwU,EAAaxU,gBAC/B6N,EAAkB2G,EAAa3G,gBAC7B6G,EAAch8K,EAAMgK,MACtBq+J,EAAgB2T,EAAY3T,cAC5BC,EAAe0T,EAAY1T,aAC3BT,EAAcmU,EAAYnU,YAC5B,KAAI5U,GACqB,mBAAd4oB,IACTA,EAAUt3H,GACNA,EAAM8mF,mBAFZ,CASA,OADArrI,EAAMm3K,kBAAmB,EACjB5yH,EAAMzhE,KACZ,IAAK,YACH,IAAKukL,GAAWY,EAAY,OAC5BjoK,EAAMi8K,WAAW,YACjB,MACF,IAAK,aACH,IAAK5U,GAAWY,EAAY,OAC5BjoK,EAAMi8K,WAAW,QACjB,MACF,IAAK,SACL,IAAK,YACH,GAAIhU,EAAY,OAChB,GAAIK,EACFtoK,EAAMo5K,YAAY9Q,OACb,CACL,IAAKwL,EAAuB,OACxBzM,EACFrnK,EAAMw5K,WACGuC,GACT/7K,EAAMu5K,aAGV,MACF,IAAK,MACH,GAAIv5K,EAAMo3K,YAAa,OACvB,GAAI7yH,EAAM2oF,WAAa27B,IAAevB,IAAoBe,GAG1D8M,GAAmBn1K,EAAMu2K,iBAAiBlO,EAAeR,GACvD,OAEF7nK,EAAM+4K,aAAa1Q,GACnB,MACF,IAAK,QACH,GAAsB,MAAlB9jH,EAAMqmF,QAGR,MAEF,GAAIi+B,EAAY,CACd,IAAKR,EAAe,OACpB,GAAIroK,EAAMo3K,YAAa,OACvBp3K,EAAM+4K,aAAa1Q,GACnB,MAEF,OACF,IAAK,SACCQ,GACF7oK,EAAM64K,SAAS,CACb5B,0BAA0B,IAE5Bj3K,EAAM24K,cAAc,GAAI,CACtBn1B,OAAQ,aACRo1B,eAAgB3Q,IAElBjoK,EAAM84K,eACGiD,GAAezH,GACxBt0K,EAAMu5K,aAER,MACF,IAAK,IAEH,GAAItR,EACF,OAEF,IAAKY,EAAY,CACf7oK,EAAMy6K,SAAS,SACf,MAEF,IAAKpS,EAAe,OACpBroK,EAAM+4K,aAAa1Q,GACnB,MACF,IAAK,UACCQ,EACF7oK,EAAMk8K,YAAY,MAElBl8K,EAAMy6K,SAAS,QAEjB,MACF,IAAK,YACC5R,EACF7oK,EAAMk8K,YAAY,QAElBl8K,EAAMy6K,SAAS,SAEjB,MACF,IAAK,SACH,IAAK5R,EAAY,OACjB7oK,EAAMk8K,YAAY,UAClB,MACF,IAAK,WACH,IAAKrT,EAAY,OACjB7oK,EAAMk8K,YAAY,YAClB,MACF,IAAK,OACH,IAAKrT,EAAY,OACjB7oK,EAAMk8K,YAAY,SAClB,MACF,IAAK,MACH,IAAKrT,EAAY,OACjB7oK,EAAMk8K,YAAY,QAClB,MACF,QACE,OAEJ33H,EAAMinF,mBAERxrI,EAAMw3K,eAAiB,iBAAmBx3K,EAAMzd,MAAMk0L,cAAgBA,IACtEz2K,EAAMgK,MAAM69J,YAAcpxK,EAAM0lL,WAAWtF,EAAOtyL,OAG9CsyL,EAAOhO,YAAc7oK,EAAMgK,MAAM69J,YAAY9mL,OAAQ,CACvD,IAAIwnL,EAAmBvoK,EAAMo6K,wBACzBtE,EAAcvN,EAAiB/gL,QAAQwY,EAAMgK,MAAM69J,YAAY,IACnE7nK,EAAMgK,MAAMq+J,cAAgBE,EAAiBuN,GAE/C,OAAO91K,EAk5BT,OAh5BAkgF,EAAaw2F,EAAQ,CAAC,CACpB5zL,IAAK,oBACLyB,MAAO,WACLX,KAAKw4L,4BACLx4L,KAAKy4L,wBACDz4L,KAAKrB,MAAM4xL,mBAAqB9nL,UAAYA,SAAS6wB,kBAEvD7wB,SAAS6wB,iBAAiB,SAAUt5B,KAAKi3L,UAAU,GAEjDj3L,KAAKrB,MAAMo1J,WACb/zJ,KAAKw0L,aAIHx0L,KAAKrB,MAAMsmL,YAAcjlL,KAAKomB,MAAMq+J,eAAiBzkL,KAAKo0L,aAAep0L,KAAKk0L,kBAChFrhL,EAAM6lL,eAAe14L,KAAKo0L,YAAap0L,KAAKk0L,oBAG/C,CACDh1L,IAAK,qBACLyB,MAAO,SAA4B2yL,GACjC,IAAIqF,EAAe34L,KAAKrB,MACtB0wK,EAAaspB,EAAatpB,WAC1B4V,EAAa0T,EAAa1T,WACxBL,EAAY5kL,KAAKomB,MAAMw+J,WAG3BA,IAAcvV,GAAcikB,EAAUjkB,YAEtCuV,GAAaK,IAAeqO,EAAUrO,aACpCjlL,KAAKw0L,aAEH5P,GAAavV,IAAeikB,EAAUjkB,WAGxCrvK,KAAKi1L,SAAS,CACZrQ,WAAW,GACV5kL,KAAKk1L,aACEtQ,GAAcvV,IAAcikB,EAAUjkB,YAAcrvK,KAAKs0L,WAAa7rL,SAAS6yI,eAGzFt7I,KAAKi1L,SAAS,CACZrQ,WAAW,IAKX5kL,KAAKo0L,aAAep0L,KAAKk0L,kBAAoBl0L,KAAK8zL,gCACpDjhL,EAAM6lL,eAAe14L,KAAKo0L,YAAap0L,KAAKk0L,kBAC5Cl0L,KAAK8zL,+BAAgC,KAGxC,CACD50L,IAAK,uBACLyB,MAAO,WACLX,KAAK44L,2BACL54L,KAAK64L,uBACLpwL,SAAS4yB,oBAAoB,SAAUr7B,KAAKi3L,UAAU,KAMvD,CACD/3L,IAAK,aACLyB,MAAO,WACLX,KAAKrB,MAAMg5L,eAEZ,CACDz4L,IAAK,cACLyB,MAAO,WACLX,KAAK+0L,cAAc,GAAI,CACrBn1B,OAAQ,aACRo1B,eAAgBh1L,KAAKrB,MAAM0lL,aAE7BrkL,KAAKrB,MAAMu2L,gBAEZ,CACDh2L,IAAK,gBACLyB,MAAO,SAAuB+zL,EAAUC,GACtC30L,KAAKrB,MAAMo2L,cAAcL,EAAUC,KAMpC,CACDz1L,IAAK,aACLyB,MAAO,WACAX,KAAKs0L,UACVt0L,KAAKs0L,SAASxxD,UAEf,CACD5jI,IAAK,YACLyB,MAAO,WACAX,KAAKs0L,UACVt0L,KAAKs0L,SAASpL,SAIf,CACDhqL,IAAK,WACLyB,MAAO,SAAkB23L,GACvB,IAAIQ,EAAS94L,KACT+4L,EAAe/4L,KAAKomB,MACtB69J,EAAc8U,EAAa9U,YAC3BW,EAAYmU,EAAanU,UACvBD,EAAmB3kL,KAAKw2L,wBACxBwC,EAA8B,UAAhBV,EAA0B,EAAI3T,EAAiBxnL,OAAS,EAC1E,IAAK6C,KAAKrB,MAAM8kL,QAAS,CACvB,IAAIwV,EAAgBtU,EAAiB/gL,QAAQqgL,EAAY,IACrDgV,GAAiB,IACnBD,EAAcC,GAKlBj5L,KAAK8zL,gCAAkClP,GAAa5kL,KAAKo0L,aACzDp0L,KAAKi1L,SAAS,CACZ5B,0BAA0B,EAC1B3O,aAAc,KACdD,cAAeE,EAAiBqU,KAC/B,WACD,OAAOF,EAAOnB,kBAGjB,CACDz4L,IAAK,aACLyB,MAAO,SAAoB6rB,GACzB,IAAI0sK,EAAel5L,KAAKomB,MACtB69J,EAAciV,EAAajV,YAC3BS,EAAewU,EAAaxU,aAG9B,GAAK1kL,KAAKrB,MAAM8kL,QAAhB,CACAzjL,KAAKi1L,SAAS,CACZxQ,cAAe,OAEjB,IAAI0U,EAAelV,EAAYrgL,QAAQ8gL,GAClCA,IACHyU,GAAgB,GAElB,IAAIx9K,EAAYsoK,EAAY9mL,OAAS,EACjCi8L,GAAa,EACjB,GAAKnV,EAAY9mL,OAAjB,CACA,OAAQqvB,GACN,IAAK,WAGD4sK,EAFmB,IAAjBD,EAEU,GACe,IAAlBA,EAEGx9K,EAEAw9K,EAAe,EAE7B,MACF,IAAK,OACCA,GAAgB,GAAKA,EAAex9K,IACtCy9K,EAAYD,EAAe,GAIjCn5L,KAAKi1L,SAAS,CACZ/B,eAA8B,IAAfkG,EACf1U,aAAcT,EAAYmV,SAG7B,CACDl6L,IAAK,cACLyB,MAAO,WACL,IAAI6rB,EAAYpsB,UAAUjD,OAAS,QAAsB+I,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,QAChFqxL,EAAWzxL,KAAKrB,MAAM8yL,SACtBhN,EAAgBzkL,KAAKomB,MAAMq+J,cAC3BjvK,EAAUxV,KAAKy2L,sBACnB,GAAKjhL,EAAQrY,OAAb,CACA,IAAIi8L,EAAY,EACZD,EAAe3jL,EAAQ5R,QAAQ6gL,GAC9BA,IACH0U,GAAgB,GAEA,OAAd3sK,EACF4sK,EAAYD,EAAe,EAAIA,EAAe,EAAI3jL,EAAQrY,OAAS,EAC5C,SAAdqvB,EACT4sK,GAAaD,EAAe,GAAK3jL,EAAQrY,OAClB,WAAdqvB,GACT4sK,EAAYD,EAAe1H,GACX,IAAG2H,EAAY,GACR,aAAd5sK,GACT4sK,EAAYD,EAAe1H,GACXj8K,EAAQrY,OAAS,IAAGi8L,EAAY5jL,EAAQrY,OAAS,GAC1C,SAAdqvB,IACT4sK,EAAY5jL,EAAQrY,OAAS,GAE/B6C,KAAK8zL,+BAAgC,EACrC9zL,KAAKi1L,SAAS,CACZxQ,cAAejvK,EAAQ4jL,GACvB1U,aAAc,UAGjB,CACDxlL,IAAK,WACLyB,MAKA,WAEE,OAAKX,KAAKrB,MAAM6K,MAMgB,mBAArBxJ,KAAKrB,MAAM6K,MACbxJ,KAAKrB,MAAM6K,MAAMklL,GAInB1L,EAAcA,EAAc,GAAI0L,GAAe1uL,KAAKrB,MAAM6K,OAVxDklL,IAYV,CACDxvL,IAAK,iBACLyB,MAAO,WACL,IAAIg1L,EAAa31L,KAAK21L,WACpB1kL,EAAKjR,KAAKiR,GACV8kL,EAAY/1L,KAAK+1L,UACjBE,EAAgBj2L,KAAKi2L,cACrBl7C,EAAW/6I,KAAK+6I,SAChBo6C,EAAen1L,KAAKm1L,aACpBn6C,EAAWh7I,KAAKg7I,SAChBr8I,EAAQqB,KAAKrB,MACX8kL,EAAU9kL,EAAM8kL,QAClBsN,EAAQpyL,EAAMoyL,MACdv7K,EAAU7W,EAAM6W,QAElB,MAAO,CACLmgL,WAAYA,EACZ1kL,GAAIA,EACJ8kL,UAAWA,EACXE,cAAeA,EACfl7C,SAAUA,EACVs+C,SAPar5L,KAAKq5L,WAQlB5V,QAASA,EACTsN,MAAOA,EACPv7K,QAASA,EACT2/K,aAAcA,EACdtQ,YAAalmL,EACbq8I,SAAUA,EACVxxI,MAAOxJ,KAAKyJ,cAGf,CACDvK,IAAK,WACLyB,MAAO,WAEL,OADkBX,KAAKomB,MAAM69J,YACV9mL,OAAS,IAE7B,CACD+B,IAAK,aACLyB,MAAO,WACL,QAASX,KAAKy2L,sBAAsBt5L,SAErC,CACD+B,IAAK,cACLyB,MAAO,WACL,IAAI24L,EAAet5L,KAAKrB,MACtBw5L,EAAcmB,EAAanB,YAC3B1U,EAAU6V,EAAa7V,QAIzB,YAAoBv9K,IAAhBiyL,EAAkC1U,EAC/B0U,IAER,CACDj5L,IAAK,mBACLyB,MAAO,SAA0B4kL,EAAQtB,GACvC,OAAO2N,GAAkB5xL,KAAKrB,MAAO4mL,EAAQtB,KAE9C,CACD/kL,IAAK,mBACLyB,MAAO,SAA0B4kL,EAAQtB,GACvC,OAAO4N,GAAkB7xL,KAAKrB,MAAO4mL,EAAQtB,KAE9C,CACD/kL,IAAK,eACLyB,MAAO,SAAsB4kL,EAAQlB,GACnC,OAAOqO,GAAc1yL,KAAKrB,MAAO4mL,EAAQlB,KAE1C,CACDnlL,IAAK,oBACLyB,MAAO,SAA2B2oB,EAAMk9F,GACtC,GAA4C,mBAAjCxmH,KAAKrB,MAAM46L,kBAAkC,CACtD,IAAIC,EAAcx5L,KAAKrB,MAAM0lL,WACzBoV,EAAez5L,KAAKomB,MAAM69J,YAC9B,OAAOjkL,KAAKrB,MAAM46L,kBAAkBjwK,EAAM,CACxCk9F,QAASA,EACT69D,WAAYmV,EACZvV,YAAawV,IAGf,OAAOz5L,KAAK+kL,eAAez7J,KAG9B,CACDpqB,IAAK,mBACLyB,MAAO,SAA0B2oB,GAC/B,OAAOtpB,KAAKrB,MAAMiyL,iBAAiBtnK,KAMpC,CACDpqB,IAAK,4BACLyB,MAKA,WACM8H,UAAYA,SAAS6wB,mBACvB7wB,SAAS6wB,iBAAiB,mBAAoBt5B,KAAKm3L,oBAAoB,GACvE1uL,SAAS6wB,iBAAiB,iBAAkBt5B,KAAKo3L,kBAAkB,MAGtE,CACDl4L,IAAK,2BACLyB,MAAO,WACD8H,UAAYA,SAAS4yB,sBACvB5yB,SAAS4yB,oBAAoB,mBAAoBr7B,KAAKm3L,oBACtD1uL,SAAS4yB,oBAAoB,iBAAkBr7B,KAAKo3L,qBAGvD,CACDl4L,IAAK,wBACLyB,MAKA,WACM8H,UAAYA,SAAS6wB,mBACvB7wB,SAAS6wB,iBAAiB,aAAct5B,KAAKyqL,cAAc,GAC3DhiL,SAAS6wB,iBAAiB,YAAat5B,KAAK0qL,aAAa,GACzDjiL,SAAS6wB,iBAAiB,WAAYt5B,KAAKs3L,YAAY,MAG1D,CACDp4L,IAAK,uBACLyB,MAAO,WACD8H,UAAYA,SAAS4yB,sBACvB5yB,SAAS4yB,oBAAoB,aAAcr7B,KAAKyqL,cAChDhiL,SAAS4yB,oBAAoB,YAAar7B,KAAK0qL,aAC/CjiL,SAAS4yB,oBAAoB,WAAYr7B,KAAKs3L,eAGjD,CACDp4L,IAAK,cACLyB,MAIA,WACE,IAAI+4L,EAAe15L,KAAKrB,MACtB0wK,EAAaqqB,EAAarqB,WAC1BmU,EAAekW,EAAalW,aAC5BmW,EAAUD,EAAaC,QACvBtV,EAAaqV,EAAarV,WAC1ByH,EAAW4N,EAAa5N,SACxBpe,EAAOgsB,EAAahsB,KACpBuX,EAAayU,EAAazU,WAC1B7hH,EAAWs2H,EAAat2H,SAExBw2H,EADwB55L,KAAKq2L,gBACDuD,MAC1BC,EAAe75L,KAAKomB,MACtB8sK,EAAgB2G,EAAa3G,cAC7B1O,EAAgBqV,EAAarV,cAC3BiP,EAAczzL,KAAKyzL,YACnBvgJ,EAAKymJ,GAAW35L,KAAKo2L,aAAa,SAGlC0D,EAAiB9W,EAAcA,EAAcA,EAAc,CAC7D+W,oBAAqB,OACrBC,gBAAiB/U,EACjBgV,iBAAiB,EACjBC,oBAAqBl6L,KAAKrB,MAAM,qBAChCw7L,eAAgBn6L,KAAKrB,MAAM,gBAC3BynL,aAAcpmL,KAAKrB,MAAM,cACzBy7L,kBAAmBp6L,KAAKrB,MAAM,mBAC9B07L,gBAAiBj3H,EACjBk3H,KAAM,YACLrV,GAAc,CACfsV,gBAAiBv6L,KAAKo2L,aAAa,WACnCoE,YAAax6L,KAAKo2L,aAAa,cAC5B5S,GAAgB,CACnBiX,iBAAiB,IACfz6L,KAAKq5L,WAAsG,yBAAxF7U,MAAAA,OAAqD,EAASA,EAAc5kB,SAAqC,CACtI86B,mBAAoB16L,KAAKo2L,aAAa,gBACpC,CACFsE,mBAAoB16L,KAAKo2L,aAAa,iBAExC,OAAK5S,EAeen7K,EAAiBe,cAAcwwL,EAAO/4L,EAAS,GAAI4yL,EAAa,CAClFkH,eAAgB,OAChBC,aAAc,MACdC,YAAa,MACb3nJ,GAAIA,EACJ20I,SAAU7nL,KAAKu0L,YACfllB,WAAYA,EACZyrB,SAAU5H,EACV4E,OAAQ93L,KAAK63L,YACblU,SAAU3jL,KAAK03L,kBACf5T,QAAS9jL,KAAK43L,aACdmD,WAAY,QACZjP,SAAUA,EACVpe,KAAMA,EACNjiK,KAAM,OACN9K,MAAO0jL,GACNyV,IA7BmBzxL,EAAiBe,cAAcw+K,EAAY/mL,EAAS,CACtEqyC,GAAIA,EACJ20I,SAAU7nL,KAAKu0L,YACfuD,OAAQ93L,KAAK63L,YACblU,SAAU9wK,EAAMi0C,KAChBg9H,QAAS9jL,KAAK43L,aACdr7C,SAAU8yB,EACVyc,SAAUA,EACVkP,UAAW,OACXttB,KAAMA,EACN/sK,MAAO,IACNm5L,MAoBN,CACD56L,IAAK,2BACLyB,MAAO,WACL,IAAIs6L,EAASj7L,KACTk7L,EAAuBl7L,KAAKq2L,gBAC9B8E,EAAaD,EAAqBC,WAClCC,EAAsBF,EAAqBE,oBAC3CC,EAAkBH,EAAqBG,gBACvCC,EAAmBJ,EAAqBI,iBACxCC,EAAcL,EAAqBK,YACnCC,EAAcN,EAAqBM,YACjC/H,EAAczzL,KAAKyzL,YACnBgI,EAAez7L,KAAKrB,MACtB8xL,EAA2BgL,EAAahL,yBACxCphB,EAAaosB,EAAapsB,WAC1BoU,EAAUgY,EAAahY,QACvBY,EAAaoX,EAAapX,WAC1B+J,EAAcqN,EAAarN,YACzBsN,EAAe17L,KAAKomB,MACtB69J,EAAcyX,EAAazX,YAC3BS,EAAegX,EAAahX,aAC5BE,EAAY8W,EAAa9W,UAC3B,IAAK5kL,KAAKq5L,aAAe5I,EACvB,OAAOpM,EAAa,KAAoBh8K,EAAiBe,cAAcoyL,EAAa36L,EAAS,GAAI4yL,EAAa,CAC5Gv0L,IAAK,cACLmwK,WAAYA,EACZuV,UAAWA,EACX+W,WAAY,CACVzoJ,GAAIlzC,KAAKo2L,aAAa,kBAEtBhI,GAEN,GAAI3K,EACF,OAAOQ,EAAYrzK,KAAI,SAAUgrL,EAAK/oL,GACpC,IAAIgpL,EAAkBD,IAAQlX,EAC1BxlL,EAAM,GAAG+X,OAAOgkL,EAAOlW,eAAe6W,GAAM,KAAK3kL,OAAOgkL,EAAOpK,eAAe+K,IAClF,OAAoBvzL,EAAiBe,cAAc+xL,EAAYt6L,EAAS,GAAI4yL,EAAa,CACvFjD,WAAY,CACVsL,UAAWV,EACXW,MAAOV,EACPW,OAAQV,GAEV1W,UAAWiX,EACXxsB,WAAYA,EACZnwK,IAAKA,EACL2T,MAAOA,EACPk1K,YAAa,CACX1iB,QAAS,WACP,OAAO41B,EAAOzF,YAAYoG,IAE5BtE,WAAY,WACV,OAAO2D,EAAOzF,YAAYoG,IAE5BK,YAAa,SAAqB5/L,GAChCA,EAAEurJ,mBAGNt+H,KAAMsyK,IACJX,EAAO1B,kBAAkBqC,EAAK,aAGtC,GAAIvX,EACF,OAAO,KAET,IAAIiK,EAAcrK,EAAY,GAC9B,OAAoB57K,EAAiBe,cAAcmyL,EAAa16L,EAAS,GAAI4yL,EAAa,CACxFnqK,KAAMglK,EACNjf,WAAYA,IACVrvK,KAAKu5L,kBAAkBjL,EAAa,YAEzC,CACDpvL,IAAK,uBACLyB,MAAO,WACL,IACEu7L,EADyBl8L,KAAKq2L,gBACQ6F,eACpCzI,EAAczzL,KAAKyzL,YACnB0I,EAAgBn8L,KAAKrB,MACvB0wK,EAAa8sB,EAAc9sB,WAC3ByhB,EAAYqL,EAAcrL,UACxBlM,EAAY5kL,KAAKomB,MAAMw+J,UAC3B,IAAK5kL,KAAKm4L,gBAAkB+D,GAAkB7sB,IAAervK,KAAKq5L,YAAcvI,EAC9E,OAAO,KAET,IAAI6K,EAAa,CACfM,YAAaj8L,KAAKg3L,0BAClBM,WAAYt3L,KAAKw3L,yBACjBzL,cAAe,QAEjB,OAAoB1jL,EAAiBe,cAAc8yL,EAAgBr7L,EAAS,GAAI4yL,EAAa,CAC3FkI,WAAYA,EACZ/W,UAAWA,OAGd,CACD1lL,IAAK,yBACLyB,MAAO,WACL,IACEy7L,EADyBp8L,KAAKq2L,gBACU+F,iBACtC3I,EAAczzL,KAAKyzL,YACnB4I,EAAgBr8L,KAAKrB,MACvB0wK,EAAagtB,EAAchtB,WAC3ByhB,EAAYuL,EAAcvL,UACxBlM,EAAY5kL,KAAKomB,MAAMw+J,UAC3B,IAAKwX,IAAqBtL,EAAW,OAAO,KAI5C,OAAoBzoL,EAAiBe,cAAcgzL,EAAkBv7L,EAAS,GAAI4yL,EAAa,CAC7FkI,WAJe,CACf5P,cAAe,QAIf1c,WAAYA,EACZuV,UAAWA,OAGd,CACD1lL,IAAK,2BACLyB,MAAO,WACL,IAAI27L,EAAuBt8L,KAAKq2L,gBAC9BkG,EAAoBD,EAAqBC,kBACzCC,EAAqBF,EAAqBE,mBAG5C,IAAKD,IAAsBC,EAAoB,OAAO,KACtD,IAAI/I,EAAczzL,KAAKyzL,YACnBpkB,EAAarvK,KAAKrB,MAAM0wK,WACxBuV,EAAY5kL,KAAKomB,MAAMw+J,UAC3B,OAAoBv8K,EAAiBe,cAAcozL,EAAoB37L,EAAS,GAAI4yL,EAAa,CAC/FpkB,WAAYA,EACZuV,UAAWA,OAGd,CACD1lL,IAAK,0BACLyB,MAAO,WACL,IACE47L,EADyBv8L,KAAKq2L,gBACWkG,kBAC3C,IAAKA,EAAmB,OAAO,KAC/B,IAAI9I,EAAczzL,KAAKyzL,YACnBpkB,EAAarvK,KAAKrB,MAAM0wK,WACxBuV,EAAY5kL,KAAKomB,MAAMw+J,UACvB+W,EAAa,CACfM,YAAaj8L,KAAK82L,6BAClBQ,WAAYt3L,KAAKy3L,4BACjB1L,cAAe,QAEjB,OAAoB1jL,EAAiBe,cAAcmzL,EAAmB17L,EAAS,GAAI4yL,EAAa,CAC9FkI,WAAYA,EACZtsB,WAAYA,EACZuV,UAAWA,OAGd,CACD1lL,IAAK,aACLyB,MAAO,WACL,IAAI87L,EAASz8L,KACT08L,EAAuB18L,KAAKq2L,gBAC9BsG,EAAQD,EAAqBC,MAC7BC,EAAeF,EAAqBE,aACpCtxC,EAAOoxC,EAAqBpxC,KAC5BuxC,EAAWH,EAAqBG,SAChCC,EAAaJ,EAAqBI,WAClCC,EAAiBL,EAAqBK,eACtCC,EAAmBN,EAAqBM,iBACxCC,EAASP,EAAqBO,OAC5BxJ,EAAczzL,KAAKyzL,YACnBhP,EAAgBzkL,KAAKomB,MAAMq+J,cAC3ByY,EAAgBl9L,KAAKrB,MACvB0xL,EAAoB6M,EAAc7M,kBAClChM,EAAa6Y,EAAc7Y,WAC3ByM,EAAYoM,EAAcpM,UAC1B3D,EAAiB+P,EAAc/P,eAC/B8D,EAAgBiM,EAAcjM,cAC9BD,EAAgBkM,EAAclM,cAC9B/L,EAAaiY,EAAcjY,WAC3BiM,EAAgBgM,EAAchM,cAC9BC,EAAe+L,EAAc/L,aAC7BgM,EAAmBD,EAAcC,iBACjC/L,EAAwB8L,EAAc9L,sBACtCC,EAA2B6L,EAAc7L,yBACzCpD,EAAmBiP,EAAcjP,iBACjCmP,EAAoBF,EAAcE,kBAClCC,EAAuBH,EAAcG,qBACvC,IAAKpY,EAAY,OAAO,KAGxB,IAmCIqY,EAnCAvxL,EAAS,SAAgBpN,EAAOu0C,GAClC,IAAIznC,EAAO9M,EAAM8M,KACf6d,EAAO3qB,EAAM2qB,KACb+lJ,EAAa1wK,EAAM0wK,WACnB6U,EAAavlL,EAAMulL,WACnB52K,EAAQ3O,EAAM2O,MACd3M,EAAQhC,EAAMgC,MACZikL,EAAYH,IAAkBn7J,EAC9Bi0K,EAAUluB,OAAanpK,EAAY,WACrC,OAAOu2L,EAAO1E,cAAczuK,IAE1Bk0K,EAAWnuB,OAAanpK,EAAY,WACtC,OAAOu2L,EAAOtH,aAAa7rK,IAEzBm0K,EAAW,GAAGxmL,OAAOwlL,EAAOrG,aAAa,UAAW,KAAKn/K,OAAOi8B,GAChEyoJ,EAAa,CACfzoJ,GAAIuqJ,EACJp4B,QAASm4B,EACTE,YAAaH,EACbI,YAAaJ,EACbzR,UAAW,GAEb,OAAoBzjL,EAAiBe,cAAc6zL,EAAQp8L,EAAS,GAAI4yL,EAAa,CACnFkI,WAAYA,EACZryK,KAAMA,EACN+lJ,WAAYA,EACZ6U,WAAYA,EACZhlL,IAAKu+L,EACLnwL,MAAOA,EACP7B,KAAMA,EACN9K,MAAOA,EACPikL,UAAWA,EACXiD,SAAUjD,EAAY6X,EAAOtI,yBAAsBjuL,IACjDu2L,EAAOlD,kBAAkB56L,EAAM2qB,KAAM,UAG3C,GAAItpB,KAAK49L,aACPN,EAASt9L,KAAKu2L,wBAAwB3lL,KAAI,SAAUkmD,GAClD,GAAkB,UAAdA,EAAKrrD,KAAkB,CACzB,IAAIoyL,EAAQ/mI,EAAKxtC,KACf9T,EAAUshD,EAAKthD,QACfsoL,EAAahnI,EAAKjkD,MAChBkrL,EAAU,GAAG9mL,OAAOwlL,EAAOrG,aAAa,SAAU,KAAKn/K,OAAO6mL,GAC9DE,EAAY,GAAG/mL,OAAO8mL,EAAS,YACnC,OAAoB11L,EAAiBe,cAAcuzL,EAAO97L,EAAS,GAAI4yL,EAAa,CAClFv0L,IAAK6+L,EACLz0K,KAAMu0K,EACNroL,QAASA,EACTyoL,QAASrB,EACTsB,aAAc,CACZhrJ,GAAI8qJ,EACJ10K,KAAMwtC,EAAKxtC,MAEbhc,MAAOmvL,EAAO7L,iBAAiB95H,EAAKxtC,QAClCwtC,EAAKthD,QAAQ5E,KAAI,SAAU20K,GAC7B,OAAOx5K,EAAOw5K,EAAQ,GAAGtuK,OAAO6mL,EAAY,KAAK7mL,OAAOsuK,EAAO1yK,YAE5D,GAAkB,WAAdikD,EAAKrrD,KACd,OAAOM,EAAO+qD,EAAM,GAAG7/C,OAAO6/C,EAAKjkD,gBAGlC,GAAIi+K,EAAW,CACpB,IAAIzsH,EAAU8oH,EAAe,CAC3B9I,WAAYA,IAEd,GAAgB,OAAZhgH,EAAkB,OAAO,KAC7Bi5H,EAAsBj1L,EAAiBe,cAAc2zL,EAAgBtJ,EAAapvH,OAC7E,CACL,IAAI85H,EAAWlQ,EAAiB,CAC9B5J,WAAYA,IAEd,GAAiB,OAAb8Z,EAAmB,OAAO,KAC9Bb,EAAsBj1L,EAAiBe,cAAc4zL,EAAkBvJ,EAAa0K,GAEtF,IAAIC,EAAqB,CACvBnN,cAAeA,EACfD,cAAeA,EACfE,cAAeA,EACfC,aAAcA,EACdE,yBAA0BA,GAExBgN,EAA2Bh2L,EAAiBe,cAAcyJ,EAAMyrL,WAAYz9L,EAAS,GAAI4yL,EAAa2K,IAAqB,SAAUzmG,GACvI,IAAIzuF,EAAMyuF,EAAMzuF,IACdq1L,EAAoB5mG,EAAM6mG,YAC1Bz6K,EAAYw6K,EAAkBx6K,UAC9B06K,EAAYF,EAAkBE,UAChC,OAAoBp2L,EAAiBe,cAAckiJ,EAAMzqJ,EAAS,GAAI4yL,EAAa2K,EAAoB,CACrGvW,SAAU3+K,EACVyyL,WAAY,CACVM,YAAaQ,EAAO/F,gBACpBgH,YAAajB,EAAO9F,gBACpBzjJ,GAAIupJ,EAAOrG,aAAa,YAE1BtF,UAAWA,EACX/sK,UAAWA,IACI1b,EAAiBe,cAAcggL,EAAe,CAC7DG,eAAgB8G,EAChBzG,YAAawT,EACb1T,eAAgB2T,EAChBhU,YAAa+H,IACZ,SAAUsN,GACX,OAAoBr2L,EAAiBe,cAAcyzL,EAAUh8L,EAAS,GAAI4yL,EAAa,CACrF5L,SAAU,SAAkBzpL,GAC1Bq+L,EAAOpI,eAAej2L,GACtBsgM,EAAgBtgM,IAElB0yL,UAAWA,EACX2N,UAAWA,EACXha,cAAeA,IACb6Y,UAOR,OAAOH,GAAqC,UAAjBhM,EAAwC9oL,EAAiBe,cAAc0zL,EAAYj8L,EAAS,GAAI4yL,EAAa,CACtIkL,SAAUxB,EACVyB,eAAgB5+L,KAAKg0L,WACrB9C,cAAeA,EACfC,aAAcA,IACZkN,GAAeA,IAEpB,CACDn/L,IAAK,kBACLyB,MAAO,WACL,IAAIk+L,EAAS7+L,KACT8+L,EAAgB9+L,KAAKrB,MACvBogM,EAAYD,EAAcC,UAC1B1vB,EAAayvB,EAAczvB,WAC3BoU,EAAUqb,EAAcrb,QACxB58K,EAAOi4L,EAAcj4L,KACrBu8D,EAAW07H,EAAc17H,SACvB6gH,EAAcjkL,KAAKomB,MAAM69J,YAC7B,GAAI7gH,IAAapjE,KAAKq5L,aAAehqB,EACnC,OAAoBhnK,EAAiBe,cAAcyiL,EAAiB,CAClEhlL,KAAMA,EACNi9K,QAAS9jL,KAAKg4L,oBAGlB,GAAKnxL,IAAQwoK,EAAb,CACA,GAAIoU,EAAS,CACX,GAAIsb,EAAW,CACb,IAAIp+L,EAAQsjL,EAAYrzK,KAAI,SAAUgrL,GACpC,OAAOiD,EAAOhO,eAAe+K,MAC5B/qL,KAAKkuL,GACR,OAAoB12L,EAAiBe,cAAc,QAAS,CAC1DvC,KAAMA,EACN4E,KAAM,SACN9K,MAAOA,IAGT,IAAImF,EAAQm+K,EAAY9mL,OAAS,EAAI8mL,EAAYrzK,KAAI,SAAUgrL,EAAKn/L,GAClE,OAAoB4L,EAAiBe,cAAc,QAAS,CAC1DlK,IAAK,KAAK+X,OAAOxa,GACjBoK,KAAMA,EACN4E,KAAM,SACN9K,MAAOk+L,EAAOhO,eAAe+K,QAEfvzL,EAAiBe,cAAc,QAAS,CACxDvC,KAAMA,EACN4E,KAAM,SACN9K,MAAO,KAET,OAAoB0H,EAAiBe,cAAc,MAAO,KAAMtD,GAGlE,IAAIu3F,EAAS4mF,EAAY,GAAKjkL,KAAK6wL,eAAe5M,EAAY,IAAM,GACpE,OAAoB57K,EAAiBe,cAAc,QAAS,CAC1DvC,KAAMA,EACN4E,KAAM,SACN9K,MAAO08F,OAIZ,CACDn+F,IAAK,mBACLyB,MAAO,WACL,IAAI8yL,EAAczzL,KAAKyzL,YACnBuL,EAAeh/L,KAAKomB,MACtBo+J,EAAgBwa,EAAaxa,cAC7BC,EAAgBua,EAAava,cAC7BC,EAAesa,EAAata,aAC5BE,EAAYoa,EAAapa,UACzBX,EAAc+a,EAAa/a,YACzBU,EAAmB3kL,KAAKy2L,sBAC5B,OAAoBpuL,EAAiBe,cAAcm7K,EAAc1jL,EAAS,GAAI4yL,EAAa,CACzFvgJ,GAAIlzC,KAAKo2L,aAAa,eACtB5R,cAAeA,EACfC,cAAeA,EACfC,aAAcA,EACdE,UAAWA,EACXX,YAAaA,EACbU,iBAAkBA,OAGrB,CACDzlL,IAAK,SACLyB,MAAO,WACL,IAAIs+L,EAAuBj/L,KAAKq2L,gBAC9BxqC,EAAUozC,EAAqBpzC,QAC/BqzC,EAAsBD,EAAqBC,oBAC3CC,EAAkBF,EAAqBE,gBACvCC,EAAiBH,EAAqBG,eACpCC,EAAgBr/L,KAAKrB,MACvBoM,EAAYs0L,EAAct0L,UAC1BmoC,EAAKmsJ,EAAcnsJ,GACnBm8H,EAAagwB,EAAchwB,WAC3B4V,EAAaoa,EAAcpa,WACzBL,EAAY5kL,KAAKomB,MAAMw+J,UACvB6O,EAAczzL,KAAKyzL,YAAczzL,KAAKs/L,iBAC1C,OAAoBj3L,EAAiBe,cAAc+1L,EAAiBt+L,EAAS,GAAI4yL,EAAa,CAC5F1oL,UAAWA,EACX4wL,WAAY,CACVzoJ,GAAIA,EACJ+kJ,UAAWj4L,KAAKi4L,WAElB5oB,WAAYA,EACZuV,UAAWA,IACT5kL,KAAKu/L,mBAAiCl3L,EAAiBe,cAAcyiJ,EAAShrJ,EAAS,GAAI4yL,EAAa,CAC1G5L,SAAU7nL,KAAKi0L,cACf0H,WAAY,CACVM,YAAaj8L,KAAK42L,mBAClBU,WAAYt3L,KAAKu3L,mBAEnBloB,WAAYA,EACZuV,UAAWA,EACXK,WAAYA,IACG58K,EAAiBe,cAAcg2L,EAAgBv+L,EAAS,GAAI4yL,EAAa,CACxFpkB,WAAYA,IACVrvK,KAAKw/L,2BAA4Bx/L,KAAKy/L,eAA6Bp3L,EAAiBe,cAAc81L,EAAqBr+L,EAAS,GAAI4yL,EAAa,CACnJpkB,WAAYA,IACVrvK,KAAK0/L,uBAAwB1/L,KAAK2/L,yBAA0B3/L,KAAK4/L,2BAA4B5/L,KAAK6/L,4BAA6B7/L,KAAK8/L,aAAc9/L,KAAK+/L,sBAE3J,CAAC,CACH7gM,IAAK,2BACLyB,MAAO,SAAkChC,EAAOynB,GAC9C,IAAIktK,EAAYltK,EAAMktK,UACpBH,EAA0B/sK,EAAM+sK,wBAChCE,EAA2BjtK,EAAMitK,yBACjC7O,EAAgBp+J,EAAMo+J,cACtBI,EAAYx+J,EAAMw+J,UAClBwO,EAAiBhtK,EAAMgtK,eACrB59K,EAAU7W,EAAM6W,QAClB7U,EAAQhC,EAAMgC,MACdskL,EAAatmL,EAAMsmL,WACnBZ,EAAa1lL,EAAM0lL,WACnBZ,EAAU9kL,EAAM8kL,QACdQ,EAAcpxK,EAAM0lL,WAAW53L,GAC/Bq/L,EAAsB,GAC1B,GAAI1M,IAAc3yL,IAAU2yL,EAAU3yL,OAAS6U,IAAY89K,EAAU99K,SAAWyvK,IAAeqO,EAAUrO,YAAcZ,IAAeiP,EAAUjP,YAAa,CAC3J,IAAIM,EAAmBM,EA38C/B,SAA+BtmL,EAAOslL,GACpC,OAAOqO,GAA4CR,GAAwBnzL,EAAOslL,IA08CxCuS,CAAsB73L,EAAOslL,GAAe,GAC5ES,EAAeyO,EA57C3B,SAA6B/sK,EAAO65K,GAClC,IAAIvb,EAAet+J,EAAMs+J,aAErBwb,EADgB95K,EAAM69J,YACargL,QAAQ8gL,GAC/C,GAAIwb,GAAoB,EAAG,CAEzB,GADuBD,EAAgBr8L,QAAQ8gL,IACvB,EAEtB,OAAOA,EACF,GAAIwb,EAAmBD,EAAgB9iM,OAG5C,OAAO8iM,EAAgBC,GAG3B,OAAO,KA66C4CC,CAAoB/5K,EAAO69J,GAAe,KAEvF+b,EAAsB,CACpB/b,YAAaA,EACbQ,cA/6CV,SAA8Br+J,EAAO5Q,GACnC,IAAI4qL,EAAoBh6K,EAAMq+J,cAC9B,OAAO2b,GAAqB5qL,EAAQ5R,QAAQw8L,IAAsB,EAAIA,EAAoB5qL,EAAQ,GA06CxE6qL,CAAqBj6K,EAAOu+J,GAI9CD,aAAcA,EACdyO,yBAAyB,GAI7B,IAAImN,EAAoD,MAA5BjN,GAAoC10L,IAAU20L,EAAY,CACpFJ,cAAeG,EACfA,8BAA0BntL,GACxB,GACAq6L,EAAmB/b,EACnBgc,EAAe5b,GAAawO,EAiBhC,OAhBIxO,IAAc4b,IAGhBD,EAAmB,CACjB5/L,MAAOkS,EAAM6iL,aAAajS,EAASQ,EAAaA,EAAY,IAAM,MAClEzuK,QAASyuK,EACTrkB,OAAQ,uBAEV4gC,GAAgBpN,GAK2E,yBAAxF5O,MAAAA,OAAqD,EAASA,EAAc5kB,UAC/E2gC,EAAmB,MAEdvd,EAAcA,EAAcA,EAAc,GAAIgd,GAAsBM,GAAwB,GAAI,CACrGhN,UAAW30L,EACX6lL,cAAe+b,EACfnN,eAAgBoN,QAIf1N,EAj7CiB,CAk7CxBprL,EAAMkE,WACRknL,GAAO9pG,aAAeA,GAEtB/rF,EAAQ61L,OAASA,GACjB71L,EAAQmqL,aAAeA,EACvBnqL,EAAQ+rF,aAAeA,GACvB/rF,EAAQyxL,aAAeA,EACvBzxL,EAAQ8nL,eAAiBiH,EACzB/uL,EAAQ4zL,eAAiB5E,EACzBhvL,EAAQwjM,YAnpDR,SAAqBz/L,GACnB,IAAItC,EAAS0B,UAAUjD,OAAS,QAAsB+I,IAAjB9F,UAAU,GAAmBA,UAAU,GAAK,GAE7EyO,EAASm0K,EAAc,GAAIhiL,GAa/B,OAVAhC,OAAOgE,KAAKtE,GAAQ0E,SAAQ,SAAUs9L,GACpC,IAAIxhM,EAAMwhM,EACN1/L,EAAO9B,GACT2P,EAAO3P,GAAO,SAAUyhM,EAAOhiM,GAC7B,OAAOD,EAAOQ,GAAK8B,EAAO9B,GAAKyhM,EAAOhiM,GAAQA,IAGhDkQ,EAAO3P,GAAOR,EAAOQ,MAGlB2P,KthCsnvDN3R,KAAK8C,KAAK7D,EAAQ,cAEnB,CAACykM,8BAA8B,KAAKC,wCAAwC,EAAEC,qCAAqC,EAAEC,qCAAqC,EAAE70L,iCAAiC,EAAE80L,kCAAkC,GAAGC,uCAAuC,GAAGC,iDAAiD,GAAGC,2CAA2C,GAAGC,iBAAiB,GAAGnzL,SAAW,IAAIozL,cAAc,IAAI70L,MAAQ,UAAU80L,KAAK,CAAC,SAASnlM,EAAQkB,EAAOJ,GuhClixDvd,aAEA,IAAI4D,EAAW1E,EAAQ,kCACnB6mL,EAAgB7mL,EAAQ,wCACxBihG,EAAkBjhG,EAAQ,yCAC1BmgG,EAAengG,EAAQ,sCACvBsoG,EAAYtoG,EAAQ,mCACpB8mL,EAAe9mL,EAAQ,sCACvBq+F,EAAqBr+F,EAAQ,4CAC7BuL,EAAQvL,EAAQ,SAChB0W,EAAQ1W,EAAQ,gCAChBqQ,EAAQrQ,EAAQ,kBAChB+mL,EAAa/mL,EAAQ,eACrBgnL,EAA2BhnL,EAAQ,kDAEvC,SAASgL,EAAiB9K,GAAK,OAAOA,GAAKA,EAAEqB,WAAarB,EAAI,CAAEuF,QAAWvF,GAE3E,SAAS4L,EAAkB5L,GACzB,GAAIA,GAAKA,EAAEqB,WAAY,OAAOrB,EAC9B,IAAIC,EAAI0C,OAAOyC,OAAO,MAatB,OAZIpF,GACF2C,OAAOgE,KAAK3G,GAAG+G,SAAQ,SAAU8E,GAC/B,GAAU,YAANA,EAAiB,CACnB,IAAIC,EAAInJ,OAAOmE,yBAAyB9G,EAAG6L,GAC3ClJ,OAAOC,eAAe3C,EAAG4L,EAAGC,EAAEC,IAAMD,EAAI,CACtCtJ,YAAY,EACZuJ,IAAK,WAAc,OAAO/L,EAAE6L,UAKpC5L,EAAC,QAAcD,EACR2C,OAAOqG,OAAO/I,GAidvB,IA9cA,IAAI+L,EAAgCJ,EAAkBP,GAClD07K,EAAmCj8K,EAAgB+7K,GAGnDt5K,EAAO,CACT/C,KAAM,kBACNgI,OAAQ,0JAONw0K,EALW,SAAkB1kL,GAC/B,OAAO6N,EAAM6B,IAAI,OAAQxN,EAAS,CAChC8J,IAAKf,GACJjL,KAID2kL,EAA0B,CAC5BC,SAAU,SAAkB5kL,GAC1B,IAAI6kL,EAAe7kL,EAAM6kL,aACvBC,EAAU9kL,EAAM8kL,QAChBpU,EAAa1wK,EAAM0wK,WACnBqU,EAAkB/kL,EAAM+kL,gBAE1B,OADY/kL,EAAM6nH,SAEhB,IAAK,OACH,MAAO,oCAAoCvvG,OAAOo4J,EAAa,GAAK,uDAAwD,mCAAmCp4J,OAAOysK,EAAkB,qDAAuD,GAAI,KACrP,IAAK,QACH,MAAO,GAAGzsK,OAAOtY,EAAM,eAAiB,SAAU,gBAAgBsY,OAAOusK,EAAe,uBAAyB,GAAI,mCAAmCvsK,OAAOwsK,EAAU,uCAAyC,IACpN,IAAK,QACH,MAAO,6GACT,QACE,MAAO,KAGbE,SAAU,SAAkBhlL,GAC1B,IAAIihK,EAASjhK,EAAMihK,OACjBgkB,EAAejlL,EAAM2O,MACrBA,OAAyB,IAAjBs2K,EAA0B,GAAKA,EACvCC,EAASllL,EAAMklL,OACfxU,EAAa1wK,EAAM0wK,WACrB,OAAQzP,GACN,IAAK,kBACL,IAAK,YACL,IAAK,eACH,MAAO,UAAU3oJ,OAAO3J,EAAO,iBACjC,IAAK,QACH,MAAO,0CACT,IAAK,sBACH,MAAO,SAAS2J,OAAO4sK,EAAO1mL,OAAS,EAAI,IAAM,GAAI,KAAK8Z,OAAO4sK,EAAOhzK,KAAK,KAAM,eACrF,IAAK,gBACH,MAAoB,UAAUoG,OAAO3J,EAA9B+hK,EAAqC,uCAAkE,eAChH,QACE,MAAO,KAGbyU,QAAS,SAAiBnlL,GACxB,IAAI6nH,EAAU7nH,EAAM6nH,QAClBu9D,EAAUplL,EAAMolL,QAChBvuK,EAAU7W,EAAM6W,QAChBwuK,EAAgBrlL,EAAM2O,MACtBA,OAA0B,IAAlB02K,EAA2B,GAAKA,EACxCC,EAActlL,EAAMslL,YACpB5U,EAAa1wK,EAAM0wK,WACnB6U,EAAavlL,EAAMulL,WACjBC,EAAgB,SAAuB7mL,EAAKw5D,GAC9C,OAAOx5D,GAAOA,EAAIH,OAAS,GAAG8Z,OAAO3Z,EAAIsG,QAAQkzD,GAAQ,EAAG,QAAQ7/C,OAAO3Z,EAAIH,QAAU,IAE3F,GAAgB,UAAZqpH,GAAuBy9D,EACzB,MAAO,SAAShtK,OAAO3J,EAAO,cAAc2J,OAAOktK,EAAcF,EAAaF,GAAU,KAE1F,GAAgB,SAAZv9D,EAAoB,CACtB,IAAI+1B,EAAW8yB,EAAa,YAAc,GACtCzhG,EAAS,GAAG32D,OAAOitK,EAAa,WAAa,WAAWjtK,OAAOslI,GACnE,MAAO,UAAUtlI,OAAO3J,EAAO,KAAK2J,OAAO22D,EAAQ,MAAM32D,OAAOktK,EAAc3uK,EAASuuK,GAAU,KAEnG,MAAO,IAETK,SAAU,SAAkBzlL,GAC1B,IAAI0lL,EAAa1lL,EAAM0lL,WACrBC,EAAiB3lL,EAAM2lL,eACzB,MAAO,GAAGrtK,OAAOqtK,GAAgBrtK,OAAOotK,EAAa,oBAAsBA,EAAa,GAAI,OA4H5FE,EAxHa,SAAoB5lL,GACnC,IAAI6lL,EAAgB7lL,EAAM6lL,cACxBC,EAAgB9lL,EAAM8lL,cACtBC,EAAe/lL,EAAM+lL,aACrBC,EAAmBhmL,EAAMgmL,iBACzBC,EAAYjmL,EAAMimL,UAClBX,EAActlL,EAAMslL,YACpBY,EAAclmL,EAAMkmL,YACpB3xI,EAAKv0C,EAAMu0C,GACT4xI,EAAmBD,EAAYC,iBACjCC,EAAiBF,EAAYE,eAC7BV,EAAaQ,EAAYR,WACzBZ,EAAUoB,EAAYpB,QACtBuB,EAAmBH,EAAYG,iBAC/BxB,EAAeqB,EAAYrB,aAC3ByB,EAAaJ,EAAYI,WACzBzvK,EAAUqvK,EAAYrvK,QACtB0vK,EAAqBL,EAAYK,mBACjCxB,EAAkBmB,EAAYnB,gBAC5ByB,EAAYN,EAAY,cACxBO,EAAWP,EAAY,aAGvBQ,EAAW39K,EAAMy6J,SAAQ,WAC3B,OAAO6gB,EAAcA,EAAc,GAAIM,GAA0BwB,GAAoB,MACpF,CAACA,IAGAQ,EAAe59K,EAAMy6J,SAAQ,WAC/B,IAQmCntG,EAR/BqP,EAAU,GACd,GAAImgH,GAAiBa,EAAS1B,SAAU,CACtC,IAAI4B,EAASf,EAAce,OACzBC,EAAkBhB,EAAchvK,QAChCiwK,EAAejB,EAAciB,aAC7BC,EAAgBlB,EAAckB,cAC9B/kL,EAAQ6jL,EAAc7jL,MAOpB07I,EAAWopC,GAAgBF,IALEvwH,EAKiBr0D,EAJxClD,MAAMG,QAAQo3D,GAAa,KAANA,GAK3B1nD,EAAQ+uI,EAAW0oC,EAAe1oC,GAAY,GAG9CspC,EAAgBH,GAAmBE,QAAiBx/K,EACpD29K,EAAS8B,EAAgBA,EAAc/0K,IAAIm0K,GAAkB,GAC7Da,EAAgB5C,EAAc,CAGhC3T,WAAYhzB,GAAY2oC,EAAiB3oC,EAAU4nC,GACnD32K,MAAOA,EACPu2K,OAAQA,GACPW,GACHngH,EAAUghH,EAAS1B,SAASiC,GAE9B,OAAOvhH,IACN,CAACmgH,EAAea,EAAUL,EAAkBf,EAAac,IACxDc,EAAcn+K,EAAMy6J,SAAQ,WAC9B,IAAI2jB,EAAW,GACX/B,EAAUU,GAAiBC,EAC3BR,KAAgBO,GAAiBR,GAAeA,EAAY5/J,SAASogK,IACzE,GAAIV,GAAWsB,EAASvB,QAAS,CAC/B,IAAIiC,EAAe,CACjBhC,QAASA,EACTz2K,MAAOy3K,EAAehB,GACtB1U,WAAY2V,EAAiBjB,EAASE,GACtCC,WAAYA,EACZ1uK,QAASmvK,EACTn+D,QAASu9D,IAAYU,EAAgB,OAAS,QAC9CR,YAAaA,GAEf6B,EAAWT,EAASvB,QAAQiC,GAE9B,OAAOD,IACN,CAACrB,EAAeC,EAAcK,EAAgBC,EAAkBK,EAAUV,EAAkBV,IAC3F+B,EAAct+K,EAAMy6J,SAAQ,WAC9B,IAAI8jB,EAAa,GACjB,GAAIhB,GAAczvK,EAAQrY,QAAUkoL,EAASjB,SAAU,CACrD,IAAIE,EAAiBY,EAAmB,CACtC7nH,MAAOsnH,EAAiBxnL,SAE1B8oL,EAAaZ,EAASjB,SAAS,CAC7BC,WAAYA,EACZC,eAAgBA,IAGpB,OAAO2B,IACN,CAACtB,EAAkBN,EAAYY,EAAYI,EAAU7vK,EAAS0vK,IAC7DgB,EAAex+K,EAAMy6J,SAAQ,WAC/B,IAAIgkB,EAAc,GAClB,GAAId,EAAS9B,SAAU,CACrB,IAAI/8D,EAAUk+D,EAAe,QAAUO,EAAa,OAAS,QAC7DkB,EAAcd,EAAS9B,SAAS,CAC9B6C,aAAcjB,EACd3+D,QAASA,EACT6oD,WAAYoV,GAAiBO,EAAiBP,EAAeR,GAC7DR,QAASA,EACTD,aAAcA,EACdE,gBAAiBA,IAGrB,OAAOyC,IACN,CAAChB,EAAWV,EAAeC,EAAcjB,EAASuB,EAAkBxB,EAAcyB,EAAYI,EAAUpB,EAAaP,IACpH2C,EAAc,GAAGpvK,OAAO4uK,EAAa,KAAK5uK,OAAO+uK,EAAa,KAAK/uK,OAAOivK,GAC1EI,EAAmB95K,EAAM6B,IAAI3G,EAAMyD,SAAU,KAAMqB,EAAM6B,IAAI,OAAQ,CACvE6kC,GAAI,kBACHoyI,GAAe94K,EAAM6B,IAAI,OAAQ,CAClC6kC,GAAI,gBACHmzI,IACCE,EAA0G,yBAAxF/B,MAAAA,OAAqD,EAASA,EAAc5kB,QAClG,OAAOpzJ,EAAM6B,IAAI3G,EAAMyD,SAAU,KAAMqB,EAAM6B,IAAIg1K,EAAY,CAC3DnwI,GAAIA,GACHqzI,GAAkBD,GAAmB95K,EAAM6B,IAAIg1K,EAAY,CAC5DmD,YAAapB,EACbqB,cAAe,QACfC,gBAAiB,kBAChB9B,IAAc2B,GAAkBD,KAIjCK,EAAa,CAAC,CAChBzoC,KAAM,IACN0oC,QAAS,sCACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,OACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,aACR,CACD1oC,KAAM,IACN0oC,QAAS,gBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,IACN0oC,QAAS,kCACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,wBACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,sBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,+CACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,sCACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,uCACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,OACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,aACR,CACD1oC,KAAM,IACN0oC,QAAS,iBACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,KACN0oC,QAAS,MACR,CACD1oC,KAAM,IACN0oC,QAAS,mCACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,wBACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,kBACR,CACD1oC,KAAM,IACN0oC,QAAS,uBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,+CACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,cACR,CACD1oC,KAAM,IACN0oC,QAAS,UACR,CACD1oC,KAAM,IACN0oC,QAAS,qBACR,CACD1oC,KAAM,IACN0oC,QAAS,sBACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,sCACR,CACD1oC,KAAM,IACN0oC,QAAS,YACR,CACD1oC,KAAM,KACN0oC,QAAS,KACR,CACD1oC,KAAM,IACN0oC,QAAS,eACR,CACD1oC,KAAM,IACN0oC,QAAS,SACR,CACD1oC,KAAM,IACN0oC,QAAS,oBACR,CACD1oC,KAAM,IACN0oC,QAAS,mBAEPC,EAAe,IAAI1oI,OAAO,IAAMwoI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","file":"libraries-generated.js","sourcesContent":["(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()",null,"function _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}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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 return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _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 }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\nmodule.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexports.default = memoize;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hoistNonReactStatics$1 = require('hoist-non-react-statics');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar hoistNonReactStatics__default = /*#__PURE__*/_interopDefault(hoistNonReactStatics$1);\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics__default[\"default\"](targetComponent, sourceComponent);\n});\n\nexports[\"default\"] = hoistNonReactStatics;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hoistNonReactStatics$1 = require('hoist-non-react-statics');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar hoistNonReactStatics__default = /*#__PURE__*/_interopDefault(hoistNonReactStatics$1);\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics__default[\"default\"](targetComponent, sourceComponent);\n});\n\nexports[\"default\"] = hoistNonReactStatics;\n","'use strict';\n\nvar React = require('react');\nvar createCache = require('@emotion/cache');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar weakMemoize = require('@emotion/weak-memoize');\nvar _isolatedHnrs_dist_emotionReact_isolatedHnrs = require('../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.prod.js');\nvar utils = require('@emotion/utils');\nvar serialize = require('@emotion/serialize');\nvar useInsertionEffectWithFallbacks = require('@emotion/use-insertion-effect-with-fallbacks');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar createCache__default = /*#__PURE__*/_interopDefault(createCache);\nvar weakMemoize__default = /*#__PURE__*/_interopDefault(weakMemoize);\n\nvar isBrowser = typeof document !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React__namespace.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache__default[\"default\"]({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return React.useContext(EmotionCacheContext);\n};\n\nexports.withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = React.useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n exports.withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = React.useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache__default[\"default\"]({\n key: 'css'\n });\n return /*#__PURE__*/React__namespace.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React__namespace.createContext({});\n\nvar useTheme = function useTheme() {\n return React__namespace.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize__default[\"default\"](function (outerTheme) {\n return weakMemoize__default[\"default\"](function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React__namespace.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React__namespace.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React__namespace.useContext(ThemeContext);\n return /*#__PURE__*/React__namespace.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React__namespace.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return _isolatedHnrs_dist_emotionReact_isolatedHnrs[\"default\"](WithTheme, Component);\n}\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n utils.registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectWithFallbacks.useInsertionEffectAlwaysWithSyncFallback(function () {\n return utils.insertStyles(cache, serialized, isStringTag);\n });\n\n if (!isBrowser && rules !== undefined) {\n var _ref2;\n\n var serializedNames = serialized.name;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n next = next.next;\n }\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedNames, _ref2.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref2.nonce = cache.sheet.nonce, _ref2));\n }\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */exports.withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = utils.getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serialize.serializeStyles(registeredStyles, undefined, React__namespace.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && ( \"production\" === 'production' )) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React__namespace.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexports.CacheProvider = CacheProvider;\nexports.Emotion = Emotion$1;\nexports.ThemeContext = ThemeContext;\nexports.ThemeProvider = ThemeProvider;\nexports.__unsafe_useEmotionCache = __unsafe_useEmotionCache;\nexports.createEmotionProps = createEmotionProps;\nexports.hasOwnProperty = hasOwnProperty;\nexports.isBrowser = isBrowser;\nexports.useTheme = useTheme;\nexports.withTheme = withTheme;\n","'use strict';\n\nvar React = require('react');\nvar createCache = require('@emotion/cache');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar weakMemoize = require('@emotion/weak-memoize');\nvar _isolatedHnrs_dist_emotionReact_isolatedHnrs = require('../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.dev.js');\nvar utils = require('@emotion/utils');\nvar serialize = require('@emotion/serialize');\nvar useInsertionEffectWithFallbacks = require('@emotion/use-insertion-effect-with-fallbacks');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar createCache__default = /*#__PURE__*/_interopDefault(createCache);\nvar weakMemoize__default = /*#__PURE__*/_interopDefault(weakMemoize);\n\nvar isBrowser = typeof document !== 'undefined';\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */React__namespace.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache__default[\"default\"]({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return React.useContext(EmotionCacheContext);\n};\n\nexports.withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/React.forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = React.useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n exports.withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = React.useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache__default[\"default\"]({\n key: 'css'\n });\n return /*#__PURE__*/React__namespace.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React__namespace.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React__namespace.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize__default[\"default\"](function (outerTheme) {\n return weakMemoize__default[\"default\"](function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React__namespace.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React__namespace.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React__namespace.useContext(ThemeContext);\n return /*#__PURE__*/React__namespace.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React__namespace.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return _isolatedHnrs_dist_emotionReact_isolatedHnrs[\"default\"](WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n utils.registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectWithFallbacks.useInsertionEffectAlwaysWithSyncFallback(function () {\n return utils.insertStyles(cache, serialized, isStringTag);\n });\n\n if (!isBrowser && rules !== undefined) {\n var _ref2;\n\n var serializedNames = serialized.name;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n next = next.next;\n }\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedNames, _ref2.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref2.nonce = cache.sheet.nonce, _ref2));\n }\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */exports.withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = utils.getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serialize.serializeStyles(registeredStyles, undefined, React__namespace.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serialize.serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React__namespace.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\n\nexports.CacheProvider = CacheProvider;\nexports.Emotion = Emotion$1;\nexports.ThemeContext = ThemeContext;\nexports.ThemeProvider = ThemeProvider;\nexports.__unsafe_useEmotionCache = __unsafe_useEmotionCache;\nexports.createEmotionProps = createEmotionProps;\nexports.hasOwnProperty = hasOwnProperty;\nexports.isBrowser = isBrowser;\nexports.useTheme = useTheme;\nexports.withTheme = withTheme;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar emotionElement = require('./emotion-element-48d2c2e4.cjs.dev.js');\nvar React = require('react');\nvar utils = require('@emotion/utils');\nvar useInsertionEffectWithFallbacks = require('@emotion/use-insertion-effect-with-fallbacks');\nvar serialize = require('@emotion/serialize');\nrequire('@emotion/cache');\nrequire('@babel/runtime/helpers/extends');\nrequire('@emotion/weak-memoize');\nrequire('../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.dev.js');\nrequire('hoist-non-react-statics');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.11.1\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./dist/emotion-react.cjs.mjs\",\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": {\n\t\t\ttypes: {\n\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t},\n\t\t\t\"default\": \"./macro.js\"\n\t\t}\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.*\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.11.0\",\n\t\t\"@emotion/cache\": \"^11.11.0\",\n\t\t\"@emotion/serialize\": \"^1.1.2\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n\t\t\"@emotion/utils\": \"^1.2.1\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.1\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.11.0\",\n\t\t\"@emotion/css-prettifier\": \"1.1.3\",\n\t\t\"@emotion/server\": \"11.11.0\",\n\t\t\"@emotion/styled\": \"11.11.0\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": {\n\t\t\t\t\ttypes: {\n\t\t\t\t\t\t\"import\": \"./macro.d.mts\",\n\t\t\t\t\t\t\"default\": \"./macro.d.ts\"\n\t\t\t\t\t},\n\t\t\t\t\t\"default\": \"./macro.js\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !emotionElement.hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React__namespace.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = emotionElement.Emotion;\n createElementArgArray[1] = emotionElement.createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React__namespace.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */emotionElement.withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serialize.serializeStyles([styles], undefined, React__namespace.useContext(emotionElement.ThemeContext));\n\n if (!emotionElement.isBrowser) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React__namespace.useRef();\n useInsertionEffectWithFallbacks.useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithFallbacks.useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n utils.insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serialize.serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = utils.getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectWithFallbacks.useInsertionEffectAlwaysWithSyncFallback(function () {\n var rules = '';\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = utils.insertStyles(cache, serializedArr[i], false);\n\n if (!emotionElement.isBrowser && res !== undefined) {\n rules += res;\n }\n }\n\n if (!emotionElement.isBrowser) {\n return rules;\n }\n });\n\n if (!emotionElement.isBrowser && rules.length !== 0) {\n var _ref2;\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedArr.map(function (serialized) {\n return serialized.name;\n }).join(' '), _ref2.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref2.nonce = cache.sheet.nonce, _ref2));\n }\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */emotionElement.withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serialize.serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n utils.registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React__namespace.useContext(emotionElement.ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = typeof document !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexports.CacheProvider = emotionElement.CacheProvider;\nexports.ThemeContext = emotionElement.ThemeContext;\nexports.ThemeProvider = emotionElement.ThemeProvider;\nexports.__unsafe_useEmotionCache = emotionElement.__unsafe_useEmotionCache;\nexports.useTheme = emotionElement.useTheme;\nObject.defineProperty(exports, 'withEmotionCache', {\n enumerable: true,\n get: function () { return emotionElement.withEmotionCache; }\n});\nexports.withTheme = emotionElement.withTheme;\nexports.ClassNames = ClassNames;\nexports.Global = Global;\nexports.createElement = jsx;\nexports.css = css;\nexports.jsx = jsx;\nexports.keyframes = keyframes;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-react.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-react.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar emotionElement = require('./emotion-element-4300ad44.cjs.prod.js');\nvar React = require('react');\nvar utils = require('@emotion/utils');\nvar useInsertionEffectWithFallbacks = require('@emotion/use-insertion-effect-with-fallbacks');\nvar serialize = require('@emotion/serialize');\nrequire('@emotion/cache');\nrequire('@babel/runtime/helpers/extends');\nrequire('@emotion/weak-memoize');\nrequire('../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.prod.js');\nrequire('hoist-non-react-statics');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !emotionElement.hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return React__namespace.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = emotionElement.Emotion;\n createElementArgArray[1] = emotionElement.createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React__namespace.createElement.apply(null, createElementArgArray);\n};\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */emotionElement.withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serialize.serializeStyles([styles], undefined, React__namespace.useContext(emotionElement.ThemeContext));\n\n if (!emotionElement.isBrowser) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React__namespace.useRef();\n useInsertionEffectWithFallbacks.useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithFallbacks.useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n utils.insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serialize.serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = utils.getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectWithFallbacks.useInsertionEffectAlwaysWithSyncFallback(function () {\n var rules = '';\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = utils.insertStyles(cache, serializedArr[i], false);\n\n if (!emotionElement.isBrowser && res !== undefined) {\n rules += res;\n }\n }\n\n if (!emotionElement.isBrowser) {\n return rules;\n }\n });\n\n if (!emotionElement.isBrowser && rules.length !== 0) {\n var _ref2;\n\n return /*#__PURE__*/React__namespace.createElement(\"style\", (_ref2 = {}, _ref2[\"data-emotion\"] = cache.key + \" \" + serializedArr.map(function (serialized) {\n return serialized.name;\n }).join(' '), _ref2.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref2.nonce = cache.sheet.nonce, _ref2));\n }\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */emotionElement.withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && \"production\" !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serialize.serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n utils.registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && \"production\" !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React__namespace.useContext(emotionElement.ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexports.CacheProvider = emotionElement.CacheProvider;\nexports.ThemeContext = emotionElement.ThemeContext;\nexports.ThemeProvider = emotionElement.ThemeProvider;\nexports.__unsafe_useEmotionCache = emotionElement.__unsafe_useEmotionCache;\nexports.useTheme = emotionElement.useTheme;\nObject.defineProperty(exports, 'withEmotionCache', {\n enumerable: true,\n get: function () { return emotionElement.withEmotionCache; }\n});\nexports.withTheme = emotionElement.withTheme;\nexports.ClassNames = ClassNames;\nexports.Global = Global;\nexports.createElement = jsx;\nexports.css = css;\nexports.jsx = jsx;\nexports.keyframes = keyframes;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar sheet = require('@emotion/sheet');\nvar stylis = require('stylis');\nvar weakMemoize = require('@emotion/weak-memoize');\nvar memoize = require('@emotion/memoize');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar weakMemoize__default = /*#__PURE__*/_interopDefault(weakMemoize);\nvar memoize__default = /*#__PURE__*/_interopDefault(memoize);\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = stylis.peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (stylis.token(character)) {\n break;\n }\n\n stylis.next();\n }\n\n return stylis.slice(begin, stylis.position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (stylis.token(character)) {\n case 0:\n // &\\f\n if (character === 38 && stylis.peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(stylis.position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += stylis.delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = stylis.peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += stylis.from(character);\n }\n } while (character = stylis.next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return stylis.dealloc(toRules(stylis.alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (stylis.hash(value, length)) {\n // color-adjust\n case 5103:\n return stylis.WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return stylis.WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return stylis.WEBKIT + value + stylis.MOZ + value + stylis.MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return stylis.WEBKIT + value + stylis.MS + value + value;\n // order\n\n case 6165:\n return stylis.WEBKIT + value + stylis.MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return stylis.WEBKIT + value + stylis.replace(value, /(\\w+).+(:[^]+)/, stylis.WEBKIT + 'box-$1$2' + stylis.MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return stylis.WEBKIT + value + stylis.MS + 'flex-item-' + stylis.replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return stylis.WEBKIT + value + stylis.MS + 'flex-line-pack' + stylis.replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return stylis.WEBKIT + 'box-' + stylis.replace(value, '-grow', '') + stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return stylis.WEBKIT + stylis.replace(value, /([^-])(transform)/g, '$1' + stylis.WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return stylis.replace(stylis.replace(stylis.replace(value, /(zoom-|grab)/, stylis.WEBKIT + '$1'), /(image-set)/, stylis.WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return stylis.replace(value, /(image-set\\([^]*)/, stylis.WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return stylis.replace(stylis.replace(value, /(.+:)(flex-)?(.*)/, stylis.WEBKIT + 'box-pack:$3' + stylis.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + stylis.WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return stylis.replace(value, /(.+)-inline(.+)/, stylis.WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (stylis.strlen(value) - 1 - length > 6) switch (stylis.charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (stylis.charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return stylis.replace(value, /(.+:)(.+)-([^]+)/, '$1' + stylis.WEBKIT + '$2-$3' + '$1' + stylis.MOZ + (stylis.charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~stylis.indexof(value, 'stretch') ? prefix(stylis.replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (stylis.charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (stylis.charat(value, stylis.strlen(value) - 3 - (~stylis.indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return stylis.replace(value, ':', ':' + stylis.WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return stylis.replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + stylis.WEBKIT + (stylis.charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + stylis.WEBKIT + '$2$3' + '$1' + stylis.MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (stylis.charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return stylis.WEBKIT + value + stylis.MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case stylis.DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case stylis.KEYFRAMES:\n return stylis.serialize([stylis.copy(element, {\n value: stylis.replace(element.value, '@', '@' + stylis.WEBKIT)\n })], callback);\n\n case stylis.RULESET:\n if (element.length) return stylis.combine(element.props, function (value) {\n switch (stylis.match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return stylis.serialize([stylis.copy(element, {\n props: [stylis.replace(value, /:(read-\\w+)/, ':' + stylis.MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return stylis.serialize([stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, ':' + stylis.WEBKIT + 'input-$1')]\n }), stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, ':' + stylis.MOZ + '$1')]\n }), stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, stylis.MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar isBrowser = typeof document !== 'undefined';\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize__default[\"default\"](function () {\n return memoize__default[\"default\"](function () {\n var cache = {};\n return function (name) {\n return cache[name];\n };\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n if (isBrowser) {\n var currentSheet;\n var finalizingPlugins = [stylis.stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== stylis.COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : stylis.rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = stylis.middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis$1 = function stylis$1(styles) {\n return stylis.serialize(stylis.compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis$1(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stylis.stringify];\n\n var _serializer = stylis.middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return stylis.serialize(stylis.compile(styles), _serializer);\n }; // $FlowFixMe\n\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n if ( // using === development instead of !== production\n // because if people do ssr in tests, the source maps showing up would be annoying\n process.env.NODE_ENV === 'development' && serialized.map !== undefined) {\n return rules + serialized.map;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new sheet.StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexports[\"default\"] = createCache;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-cache.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-cache.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar sheet = require('@emotion/sheet');\nvar stylis = require('stylis');\nvar weakMemoize = require('@emotion/weak-memoize');\nvar memoize = require('@emotion/memoize');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar weakMemoize__default = /*#__PURE__*/_interopDefault(weakMemoize);\nvar memoize__default = /*#__PURE__*/_interopDefault(memoize);\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = stylis.peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (stylis.token(character)) {\n break;\n }\n\n stylis.next();\n }\n\n return stylis.slice(begin, stylis.position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (stylis.token(character)) {\n case 0:\n // &\\f\n if (character === 38 && stylis.peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(stylis.position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += stylis.delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = stylis.peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += stylis.from(character);\n }\n } while (character = stylis.next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return stylis.dealloc(toRules(stylis.alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (stylis.hash(value, length)) {\n // color-adjust\n case 5103:\n return stylis.WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return stylis.WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return stylis.WEBKIT + value + stylis.MOZ + value + stylis.MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return stylis.WEBKIT + value + stylis.MS + value + value;\n // order\n\n case 6165:\n return stylis.WEBKIT + value + stylis.MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return stylis.WEBKIT + value + stylis.replace(value, /(\\w+).+(:[^]+)/, stylis.WEBKIT + 'box-$1$2' + stylis.MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return stylis.WEBKIT + value + stylis.MS + 'flex-item-' + stylis.replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return stylis.WEBKIT + value + stylis.MS + 'flex-line-pack' + stylis.replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return stylis.WEBKIT + 'box-' + stylis.replace(value, '-grow', '') + stylis.WEBKIT + value + stylis.MS + stylis.replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return stylis.WEBKIT + stylis.replace(value, /([^-])(transform)/g, '$1' + stylis.WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return stylis.replace(stylis.replace(stylis.replace(value, /(zoom-|grab)/, stylis.WEBKIT + '$1'), /(image-set)/, stylis.WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return stylis.replace(value, /(image-set\\([^]*)/, stylis.WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return stylis.replace(stylis.replace(value, /(.+:)(flex-)?(.*)/, stylis.WEBKIT + 'box-pack:$3' + stylis.MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + stylis.WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return stylis.replace(value, /(.+)-inline(.+)/, stylis.WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (stylis.strlen(value) - 1 - length > 6) switch (stylis.charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (stylis.charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return stylis.replace(value, /(.+:)(.+)-([^]+)/, '$1' + stylis.WEBKIT + '$2-$3' + '$1' + stylis.MOZ + (stylis.charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~stylis.indexof(value, 'stretch') ? prefix(stylis.replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (stylis.charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (stylis.charat(value, stylis.strlen(value) - 3 - (~stylis.indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return stylis.replace(value, ':', ':' + stylis.WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return stylis.replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + stylis.WEBKIT + (stylis.charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + stylis.WEBKIT + '$2$3' + '$1' + stylis.MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (stylis.charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return stylis.WEBKIT + value + stylis.MS + stylis.replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return stylis.WEBKIT + value + stylis.MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case stylis.DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case stylis.KEYFRAMES:\n return stylis.serialize([stylis.copy(element, {\n value: stylis.replace(element.value, '@', '@' + stylis.WEBKIT)\n })], callback);\n\n case stylis.RULESET:\n if (element.length) return stylis.combine(element.props, function (value) {\n switch (stylis.match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return stylis.serialize([stylis.copy(element, {\n props: [stylis.replace(value, /:(read-\\w+)/, ':' + stylis.MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return stylis.serialize([stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, ':' + stylis.WEBKIT + 'input-$1')]\n }), stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, ':' + stylis.MOZ + '$1')]\n }), stylis.copy(element, {\n props: [stylis.replace(value, /:(plac\\w+)/, stylis.MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar isBrowser = typeof document !== 'undefined';\nvar getServerStylisCache = isBrowser ? undefined : weakMemoize__default[\"default\"](function () {\n return memoize__default[\"default\"](function () {\n var cache = {};\n return function (name) {\n return cache[name];\n };\n });\n});\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (isBrowser && key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n if (isBrowser) {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (isBrowser) {\n var currentSheet;\n var finalizingPlugins = [stylis.stringify, stylis.rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = stylis.middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis$1 = function stylis$1(styles) {\n return stylis.serialize(stylis.compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis$1(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n } else {\n var _finalizingPlugins = [stylis.stringify];\n\n var _serializer = stylis.middleware(omnipresentPlugins.concat(stylisPlugins, _finalizingPlugins));\n\n var _stylis = function _stylis(styles) {\n return stylis.serialize(stylis.compile(styles), _serializer);\n }; // $FlowFixMe\n\n\n var serverStylisCache = getServerStylisCache(stylisPlugins)(key);\n\n var getRules = function getRules(selector, serialized) {\n var name = serialized.name;\n\n if (serverStylisCache[name] === undefined) {\n serverStylisCache[name] = _stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n }\n\n return serverStylisCache[name];\n };\n\n _insert = function _insert(selector, serialized, sheet, shouldCache) {\n var name = serialized.name;\n var rules = getRules(selector, serialized);\n\n if (cache.compat === undefined) {\n // in regular mode, we don't set the styles on the inserted cache\n // since we don't need to and that would be wasting memory\n // we return them so that they are rendered in a style tag\n if (shouldCache) {\n cache.inserted[name] = true;\n }\n\n return rules;\n } else {\n // in compat mode, we put the styles on the inserted cache so\n // that emotion-server can pull out the styles\n // except when we don't want to cache it which was in Global but now\n // is nowhere but we don't want to do a major right now\n // and just in case we're going to leave the case here\n // it's also not affecting client side bundle size\n // so it's really not a big deal\n if (shouldCache) {\n cache.inserted[name] = rules;\n } else {\n return rules;\n }\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new sheet.StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexports[\"default\"] = createCache;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexports[\"default\"] = murmur2;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-hash.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-hash.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexports[\"default\"] = murmur2;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexports[\"default\"] = memoize;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-memoize.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-memoize.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexports[\"default\"] = memoize;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hashString = require('@emotion/hash');\nvar unitless = require('@emotion/unitless');\nvar memoize = require('@emotion/memoize');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar hashString__default = /*#__PURE__*/_interopDefault(hashString);\nvar unitless__default = /*#__PURE__*/_interopDefault(unitless);\nvar memoize__default = /*#__PURE__*/_interopDefault(memoize);\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize__default[\"default\"](function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless__default[\"default\"][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString__default[\"default\"](styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexports.serializeStyles = serializeStyles;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-serialize.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-serialize.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hashString = require('@emotion/hash');\nvar unitless = require('@emotion/unitless');\nvar memoize = require('@emotion/memoize');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar hashString__default = /*#__PURE__*/_interopDefault(hashString);\nvar unitless__default = /*#__PURE__*/_interopDefault(unitless);\nvar memoize__default = /*#__PURE__*/_interopDefault(memoize);\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize__default[\"default\"](function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless__default[\"default\"][key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && \"production\" !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n\n styles += strings[i];\n }\n }\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString__default[\"default\"](styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexports.serializeStyles = serializeStyles;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexports.StyleSheet = StyleSheet;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-sheet.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-sheet.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? \"production\" === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexports.StyleSheet = StyleSheet;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexports[\"default\"] = unitlessKeys;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-unitless.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-unitless.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexports[\"default\"] = unitlessKeys;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isBrowser = typeof document !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexports.getRegisteredStyles = getRegisteredStyles;\nexports.insertStyles = insertStyles;\nexports.registerStyles = registerStyles;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-utils.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-utils.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar isBrowser = typeof document !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false && cache.compat !== undefined) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var stylesForSSR = '';\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n if (!isBrowser && maybeStyles !== undefined) {\n stylesForSSR += maybeStyles;\n }\n\n current = current.next;\n } while (current !== undefined);\n\n if (!isBrowser && stylesForSSR.length !== 0) {\n return stylesForSSR;\n }\n }\n};\n\nexports.getRegisteredStyles = getRegisteredStyles;\nexports.insertStyles = insertStyles;\nexports.registerStyles = registerStyles;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexports[\"default\"] = weakMemoize;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-weak-memoize.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-weak-memoize.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexports[\"default\"] = weakMemoize;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\nvar isBrowser = typeof document !== 'undefined';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React__namespace['useInsertion' + 'Effect'] ? React__namespace['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = !isBrowser ? syncFallback : useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React__namespace.useLayoutEffect;\n\nexports.useInsertionEffectAlwaysWithSyncFallback = useInsertionEffectAlwaysWithSyncFallback;\nexports.useInsertionEffectWithLayoutFallback = useInsertionEffectWithLayoutFallback;\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./emotion-use-insertion-effect-with-fallbacks.cjs.prod.js\");\n} else {\n module.exports = require(\"./emotion-use-insertion-effect-with-fallbacks.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar React = require('react');\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\n\nvar isBrowser = typeof document !== 'undefined';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React__namespace['useInsertion' + 'Effect'] ? React__namespace['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = !isBrowser ? syncFallback : useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React__namespace.useLayoutEffect;\n\nexports.useInsertionEffectAlwaysWithSyncFallback = useInsertionEffectAlwaysWithSyncFallback;\nexports.useInsertionEffectWithLayoutFallback = useInsertionEffectWithLayoutFallback;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexports.default = weakMemoize;\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FloatingUICore = {}));\n})(this, (function (exports) { 'use strict';\n\n const sides = ['top', 'right', 'bottom', 'left'];\n const alignments = ['start', 'end'];\n const placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\n const min = Math.min;\n const max = Math.max;\n const oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n const oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n };\n function clamp(start, value, end) {\n return max(start, min(value, end));\n }\n function evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n }\n function getSide(placement) {\n return placement.split('-')[0];\n }\n function getAlignment(placement) {\n return placement.split('-')[1];\n }\n function getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n }\n function getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n }\n function getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n }\n function getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n }\n function getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n }\n function getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n }\n function getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n }\n function getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n }\n function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n }\n function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n }\n function expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n }\n function getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n }\n function rectToClientRect(rect) {\n return {\n ...rect,\n top: rect.y,\n left: rect.x,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n };\n }\n\n function computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n }\n\n /**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain positioning strategy.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\n const computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n continue;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n };\n\n /**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\n async function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n ...rects.floating,\n x,\n y\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n }\n\n /**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\n const arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center != offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n });\n\n function getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n }\n /**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\n const autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n };\n\n /**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\n const flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$map$so;\n const placement = (_overflowsData$map$so = overflowsData.map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$map$so[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n };\n\n function getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n }\n function isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n }\n /**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\n const hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n };\n\n function getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n }\n function getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n }\n /**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\n const inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n };\n\n // For type backwards-compatibility, the `OffsetOptions` type was also\n // Derivable.\n async function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n }\n\n /**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\n const offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n const {\n x,\n y\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: diffCoords\n };\n }\n };\n };\n\n /**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\n const shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n };\n /**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\n const limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n };\n\n /**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\n const size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n };\n\n exports.arrow = arrow;\n exports.autoPlacement = autoPlacement;\n exports.computePosition = computePosition;\n exports.detectOverflow = detectOverflow;\n exports.flip = flip;\n exports.hide = hide;\n exports.inline = inline;\n exports.limitShift = limitShift;\n exports.offset = offset;\n exports.rectToClientRect = rectToClientRect;\n exports.shift = shift;\n exports.size = size;\n\n}));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@floating-ui/core')) :\n typeof define === 'function' && define.amd ? define(['exports', '@floating-ui/core'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.FloatingUIDOM = {}, global.FloatingUICore));\n})(this, (function (exports, core) { 'use strict';\n\n const min = Math.min;\n const max = Math.max;\n const round = Math.round;\n const floor = Math.floor;\n const createCoords = v => ({\n x: v,\n y: v\n });\n\n function getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n }\n function getWindow(node) {\n var _node$ownerDocument;\n return (node == null ? void 0 : (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n }\n function getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n }\n function isNode(value) {\n return value instanceof Node || value instanceof getWindow(value).Node;\n }\n function isElement(value) {\n return value instanceof Element || value instanceof getWindow(value).Element;\n }\n function isHTMLElement(value) {\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n }\n function isShadowRoot(value) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n }\n function isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n }\n function isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n }\n function isContainingBlock(element) {\n const webkit = isWebKit();\n const css = getComputedStyle(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n }\n function getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n }\n function isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n }\n function isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n }\n function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n }\n function getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n }\n function getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n }\n function getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n }\n function getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n }\n\n function getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n }\n\n function unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n }\n\n function getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n }\n\n const noOffsets = /*#__PURE__*/createCoords(0);\n function getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n }\n function shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n }\n\n function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return core.rectToClientRect({\n width,\n height,\n x,\n y\n });\n }\n\n function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n }\n\n function getClientRects(element) {\n return Array.from(element.getClientRects());\n }\n\n function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n }\n\n // Gets the entire size of the scrollable document area, even extending outside\n // of the `<html>` and `<body>` rect bounds if horizontally scrollable.\n function getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n }\n\n function getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n }\n\n // Returns the inner client rect, subtracting scrollbars if present.\n function getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n }\n function getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return core.rectToClientRect(rect);\n }\n function hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n }\n\n // A \"clipping ancestor\" is an `overflow` element with the characteristic of\n // clipping (or hiding) child elements. This returns all clipping ancestors\n // of the given element up the tree.\n function getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n }\n\n // Gets the maximum area that the element is visible in due to any number of\n // clipping ancestors.\n function getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n }\n\n function getDimensions(element) {\n return getCssDimensions(element);\n }\n\n function getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n }\n\n function getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n }\n\n // Gets the closest ancestor positioned element. Handles some edge cases,\n // such as table ancestors and cross browser bugs.\n function getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n }\n\n const getElementRects = async function (_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n };\n\n function isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n }\n\n const platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n };\n\n // https://samthor.au/2021/observing-dom/\n function observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n }\n\n /**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\n function autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n }\n\n /**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\n const computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return core.computePosition(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n };\n\n Object.defineProperty(exports, 'arrow', {\n enumerable: true,\n get: function () { return core.arrow; }\n });\n Object.defineProperty(exports, 'autoPlacement', {\n enumerable: true,\n get: function () { return core.autoPlacement; }\n });\n Object.defineProperty(exports, 'detectOverflow', {\n enumerable: true,\n get: function () { return core.detectOverflow; }\n });\n Object.defineProperty(exports, 'flip', {\n enumerable: true,\n get: function () { return core.flip; }\n });\n Object.defineProperty(exports, 'hide', {\n enumerable: true,\n get: function () { return core.hide; }\n });\n Object.defineProperty(exports, 'inline', {\n enumerable: true,\n get: function () { return core.inline; }\n });\n Object.defineProperty(exports, 'limitShift', {\n enumerable: true,\n get: function () { return core.limitShift; }\n });\n Object.defineProperty(exports, 'offset', {\n enumerable: true,\n get: function () { return core.offset; }\n });\n Object.defineProperty(exports, 'shift', {\n enumerable: true,\n get: function () { return core.shift; }\n });\n Object.defineProperty(exports, 'size', {\n enumerable: true,\n get: function () { return core.size; }\n });\n exports.autoUpdate = autoUpdate;\n exports.computePosition = computePosition;\n exports.getOverflowAncestors = getOverflowAncestors;\n exports.platform = platform;\n\n}));\n","'use strict';\nvar parent = require('../../stable/array/fill');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/find');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/from');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/array/includes');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/map');\nrequire('../../modules/esnext.map.group-by');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/promise/finally');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/promise');\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/set');\nrequire('../../modules/esnext.set.difference.v2');\nrequire('../../modules/esnext.set.intersection.v2');\nrequire('../../modules/esnext.set.is-disjoint-from.v2');\nrequire('../../modules/esnext.set.is-subset-of.v2');\nrequire('../../modules/esnext.set.is-superset-of.v2');\nrequire('../../modules/esnext.set.symmetric-difference.v2');\nrequire('../../modules/esnext.set.union.v2');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../stable/symbol');\n\nrequire('../../modules/esnext.function.metadata');\nrequire('../../modules/esnext.symbol.async-dispose');\nrequire('../../modules/esnext.symbol.dispose');\nrequire('../../modules/esnext.symbol.metadata');\n\nmodule.exports = parent;\n","'use strict';\nrequire('../../modules/es.array.fill');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'fill');\n","'use strict';\nrequire('../../modules/es.array.find-index');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'findIndex');\n","'use strict';\nrequire('../../modules/es.array.find');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'find');\n","'use strict';\nrequire('../../modules/es.string.iterator');\nrequire('../../modules/es.array.from');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Array.from;\n","'use strict';\nrequire('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.map');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Map;\n","'use strict';\nrequire('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","'use strict';\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.finally');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Promise', 'finally');\n","'use strict';\nrequire('../../modules/es.aggregate-error');\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.all-settled');\nrequire('../../modules/es.promise.any');\nrequire('../../modules/es.promise.finally');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Promise;\n","'use strict';\nrequire('../../modules/es.array.iterator');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.set');\nrequire('../../modules/es.string.iterator');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Set;\n","'use strict';\nrequire('../../modules/es.array.concat');\nrequire('../../modules/es.object.to-string');\nrequire('../../modules/es.symbol');\nrequire('../../modules/es.symbol.async-iterator');\nrequire('../../modules/es.symbol.description');\nrequire('../../modules/es.symbol.has-instance');\nrequire('../../modules/es.symbol.is-concat-spreadable');\nrequire('../../modules/es.symbol.iterator');\nrequire('../../modules/es.symbol.match');\nrequire('../../modules/es.symbol.match-all');\nrequire('../../modules/es.symbol.replace');\nrequire('../../modules/es.symbol.search');\nrequire('../../modules/es.symbol.species');\nrequire('../../modules/es.symbol.split');\nrequire('../../modules/es.symbol.to-primitive');\nrequire('../../modules/es.symbol.to-string-tag');\nrequire('../../modules/es.symbol.unscopables');\nrequire('../../modules/es.json.to-string-tag');\nrequire('../../modules/es.math.to-string-tag');\nrequire('../../modules/es.reflect.to-string-tag');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Symbol;\n","'use strict';\nvar parent = require('../../actual/array/fill');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/find');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/from');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/includes');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/map');\nrequire('../../modules/esnext.map.from');\nrequire('../../modules/esnext.map.of');\nrequire('../../modules/esnext.map.delete-all');\nrequire('../../modules/esnext.map.emplace');\nrequire('../../modules/esnext.map.every');\nrequire('../../modules/esnext.map.filter');\nrequire('../../modules/esnext.map.find');\nrequire('../../modules/esnext.map.find-key');\nrequire('../../modules/esnext.map.includes');\nrequire('../../modules/esnext.map.key-by');\nrequire('../../modules/esnext.map.key-of');\nrequire('../../modules/esnext.map.map-keys');\nrequire('../../modules/esnext.map.map-values');\nrequire('../../modules/esnext.map.merge');\nrequire('../../modules/esnext.map.reduce');\nrequire('../../modules/esnext.map.some');\nrequire('../../modules/esnext.map.update');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.map.upsert');\n// TODO: remove from `core-js@4`\nrequire('../../modules/esnext.map.update-or-insert');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/promise/finally');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/promise');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.aggregate-error');\nrequire('../../modules/esnext.promise.all-settled');\nrequire('../../modules/esnext.promise.try');\nrequire('../../modules/esnext.promise.any');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/set');\nrequire('../../modules/esnext.set.from');\nrequire('../../modules/esnext.set.of');\nrequire('../../modules/esnext.set.add-all');\nrequire('../../modules/esnext.set.delete-all');\nrequire('../../modules/esnext.set.every');\nrequire('../../modules/esnext.set.difference');\nrequire('../../modules/esnext.set.filter');\nrequire('../../modules/esnext.set.find');\nrequire('../../modules/esnext.set.intersection');\nrequire('../../modules/esnext.set.is-disjoint-from');\nrequire('../../modules/esnext.set.is-subset-of');\nrequire('../../modules/esnext.set.is-superset-of');\nrequire('../../modules/esnext.set.join');\nrequire('../../modules/esnext.set.map');\nrequire('../../modules/esnext.set.reduce');\nrequire('../../modules/esnext.set.some');\nrequire('../../modules/esnext.set.symmetric-difference');\nrequire('../../modules/esnext.set.union');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/symbol');\nrequire('../../modules/esnext.symbol.is-registered-symbol');\nrequire('../../modules/esnext.symbol.is-well-known-symbol');\nrequire('../../modules/esnext.symbol.matcher');\nrequire('../../modules/esnext.symbol.observable');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.symbol.is-registered');\nrequire('../../modules/esnext.symbol.is-well-known');\nrequire('../../modules/esnext.symbol.metadata-key');\nrequire('../../modules/esnext.symbol.pattern-match');\nrequire('../../modules/esnext.symbol.replace-all');\n\nmodule.exports = parent;\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar has = require('../internals/map-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[MapData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar 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","'use strict';\nvar has = require('../internals/set-helpers').has;\n\n// Perform ? RequireInternalSlot(M, [[SetData]])\nmodule.exports = function (it) {\n has(it);\n return it;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\n// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\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","'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","'use strict';\nvar 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","'use strict';\nvar 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');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\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","'use strict';\nvar 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 var n = 0;\n for (; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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/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 try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\n\nvar push = [].push;\n\nmodule.exports = function from(source /* , mapFn, thisArg */) {\n var length = arguments.length;\n var mapFn = length > 1 ? arguments[1] : undefined;\n var mapping, array, n, boundFunction;\n aConstructor(this);\n mapping = mapFn !== undefined;\n if (mapping) aCallable(mapFn);\n if (isNullOrUndefined(source)) return new this();\n array = [];\n if (mapping) {\n n = 0;\n boundFunction = bind(mapFn, length > 2 ? arguments[2] : undefined);\n iterate(source, function (nextItem) {\n call(push, array, boundFunction(nextItem, n++));\n });\n } else {\n iterate(source, push, { that: array });\n }\n return new this(array);\n};\n","'use strict';\nvar arraySlice = require('../internals/array-slice');\n\n// https://tc39.github.io/proposal-setmap-offrom/\nmodule.exports = function of() {\n return new this(arraySlice(arguments));\n};\n","'use strict';\nvar create = require('../internals/object-create');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key === key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first === entry) state.first = next;\n if (state.last === entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineBuiltInAccessor(Prototype, 'size', {\n configurable: true,\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind === 'keys') return createIterResultObject(entry.key, false);\n if (kind === 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (state) {\n return state.frozen || (state.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY === 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY === 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY === 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) !== instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor !== NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","'use strict';\nvar 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","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\n// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","'use strict';\nvar 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","'use strict';\nmodule.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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\n\n// eslint-disable-next-line es/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 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","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","'use strict';\nvar 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","'use strict';\nvar $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","'use strict';\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","'use strict';\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","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","'use strict';\n/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","'use strict';\nvar UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\n// eslint-disable-next-line redos/no-vulnerable -- safe\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","'use strict';\nvar global = require('../internals/global');\nvar classof = require('../internals/classof-raw');\n\nmodule.exports = classof(global.process) === 'process';\n","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nmodule.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","'use strict';\nvar 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","'use strict';\nvar userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","'use strict';\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","'use strict';\nvar 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');\n// eslint-disable-next-line redos/no-vulnerable -- safe\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","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar ERROR_STACK_INSTALLABLE = require('../internals/error-stack-installable');\n\n// non-standard V8\nvar captureStackTrace = Error.captureStackTrace;\n\nmodule.exports = function (error, C, stack, dropEntries) {\n if (ERROR_STACK_INSTALLABLE) {\n if (captureStackTrace) captureStackTrace(error, C);\n else createNonEnumerableProperty(error, 'stack', clearErrorStack(stack, dropEntries));\n }\n};\n","'use strict';\nvar 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/no-object-defineproperty -- safe\n Object.defineProperty(error, 'stack', createPropertyDescriptor(1, 7));\n return error.stack !== 7;\n});\n","'use strict';\nvar 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","'use strict';\nmodule.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-clause');\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 () {\n execCalled = true;\n return null;\n };\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 fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","'use strict';\nvar 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/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\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","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n var list = [];\n var i = 0;\n for (; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\n// eslint-disable-next-line es/no-function-prototype-bind -- detection\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","'use strict';\nvar 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","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar 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","'use strict';\n// `GetIteratorDirect(obj)` abstract operation\n// https://tc39.es/proposal-iterator-helpers/#sec-getiteratordirect\nmodule.exports = function (obj) {\n return {\n iterator: obj,\n next: obj.next,\n done: false\n };\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar toString = require('../internals/to-string');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (replacer) {\n if (isCallable(replacer)) return replacer;\n if (!isArray(replacer)) return;\n var rawLength = replacer.length;\n var keys = [];\n for (var i = 0; i < rawLength; i++) {\n var element = replacer[i];\n if (typeof element == 'string') push(keys, element);\n else if (typeof element == 'number' || classof(element) === 'Number' || classof(element) === 'String') push(keys, toString(element));\n }\n var keysLength = keys.length;\n var root = true;\n return function (key, value) {\n if (root) {\n root = false;\n return value;\n }\n if (isArray(this)) return value;\n for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value;\n };\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar call = require('../internals/function-call');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar INVALID_SIZE = 'Invalid size';\nvar $RangeError = RangeError;\nvar $TypeError = TypeError;\nvar max = Math.max;\n\nvar SetRecord = function (set, size, has, keys) {\n this.set = set;\n this.size = size;\n this.has = has;\n this.keys = keys;\n};\n\nSetRecord.prototype = {\n getIterator: function () {\n return getIteratorDirect(anObject(call(this.keys, this.set)));\n },\n includes: function (it) {\n return call(this.has, this.set, it);\n }\n};\n\n// `GetSetRecord` abstract operation\n// https://tc39.es/proposal-set-methods/#sec-getsetrecord\nmodule.exports = function (obj) {\n anObject(obj);\n var numSize = +obj.size;\n // NOTE: If size is undefined, then numSize will be NaN\n // eslint-disable-next-line no-self-compare -- NaN check\n if (numSize !== numSize) throw $TypeError(INVALID_SIZE);\n var intSize = toIntegerOrInfinity(numSize);\n if (intSize < 0) throw $RangeError(INVALID_SIZE);\n return new SetRecord(\n obj,\n max(intSize, 0),\n aCallable(obj.has),\n aCallable(obj.keys)\n );\n};\n","'use strict';\nvar 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);\n// eslint-disable-next-line redos/no-vulnerable -- safe\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","'use strict';\nvar 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/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; })() || this || Function('return this')();\n","'use strict';\nvar 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/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar 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/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\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 /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw 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","'use strict';\nvar 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","'use strict';\nvar classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) === 'Array';\n};\n","'use strict';\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar hasOwn = require('../internals/has-own-property');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar $Object = Object;\n\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) return false;\n var O = $Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n || hasOwn(Iterators, classof(O));\n};\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = false;\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar call = require('../internals/function-call');\n\nmodule.exports = function (record, fn, ITERATOR_INSTEAD_OF_RECORD) {\n var iterator = ITERATOR_INSTEAD_OF_RECORD ? record : record.iterator;\n var next = record.next;\n var step, result;\n while (!(step = call(next, iterator)).done) {\n result = fn(step.value);\n if (result !== undefined) return result;\n }\n};\n","'use strict';\nvar 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","'use strict';\nvar 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 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","'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/iterator-create-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 && KIND in IterablePrototype) return IterablePrototype[KIND];\n\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 }\n\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","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\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/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 = !isObject(IteratorPrototype) || 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","'use strict';\nvar 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar 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;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\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 (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^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 = join(TEMPLATE, 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","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-map -- safe\nvar MapPrototype = Map.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-map -- safe\n Map: Map,\n set: uncurryThis(MapPrototype.set),\n get: uncurryThis(MapPrototype.get),\n has: uncurryThis(MapPrototype.has),\n remove: uncurryThis(MapPrototype['delete']),\n proto: MapPrototype\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar Map = MapHelpers.Map;\nvar MapPrototype = MapHelpers.proto;\nvar forEach = uncurryThis(MapPrototype.forEach);\nvar entries = uncurryThis(MapPrototype.entries);\nvar next = entries(new Map()).next;\n\nmodule.exports = function (map, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: entries(map), next: next }, function (entry) {\n return fn(entry[1], entry[0]);\n }) : forEach(map, fn);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.upsert` method\n// https://github.com/tc39/proposal-upsert\nmodule.exports = function upsert(key, updateFn /* , insertFn */) {\n var map = anObject(this);\n var get = aCallable(map.get);\n var has = aCallable(map.has);\n var set = aCallable(map.set);\n var insertFn = arguments.length > 2 ? arguments[2] : undefined;\n var value;\n if (!isCallable(updateFn) && !isCallable(insertFn)) {\n throw $TypeError('At least one callback required');\n }\n if (call(has, map, key)) {\n value = call(get, map, key);\n if (isCallable(updateFn)) {\n value = updateFn(value);\n call(set, map, key, value);\n }\n } else if (isCallable(insertFn)) {\n value = insertFn();\n call(set, map, key, value);\n } return value;\n};\n","'use strict';\n// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n === 0 || n !== n ? n : n < 0 ? -1 : 1;\n};\n","'use strict';\nvar 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/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar microtask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar 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 global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\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/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/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/no-symbol -- safe\n var symbol = Symbol('assign detection');\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","'use strict';\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/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","'use strict';\nvar 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/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","'use strict';\nvar 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/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/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","'use strict';\nvar 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/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","'use strict';\n/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) === 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","'use strict';\nvar 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/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","'use strict';\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","'use strict';\nvar 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/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","'use strict';\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) === 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar 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","'use strict';\nvar 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/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/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","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\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/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 setter = uncurryThisAccessor(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","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global;\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar 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","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// `SameValueZero` abstract operation\n// https://tc39.es/ecma262/#sec-samevaluezero\nmodule.exports = function (x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y || x !== x && y !== y;\n};\n","'use strict';\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\nmodule.exports = function (set) {\n var result = new Set();\n iterate(set, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function difference(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = clone(O);\n if (size(O) <= otherRec.size) iterateSet(O, function (e) {\n if (otherRec.includes(e)) remove(result, e);\n });\n else iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) remove(result, e);\n });\n return result;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// eslint-disable-next-line es/no-set -- safe\nvar SetPrototype = Set.prototype;\n\nmodule.exports = {\n // eslint-disable-next-line es/no-set -- safe\n Set: Set,\n add: uncurryThis(SetPrototype.add),\n has: uncurryThis(SetPrototype.has),\n remove: uncurryThis(SetPrototype['delete']),\n proto: SetPrototype\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function intersection(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n var result = new Set();\n\n if (size(O) > otherRec.size) {\n iterateSimple(otherRec.getIterator(), function (e) {\n if (has(O, e)) add(result, e);\n });\n } else {\n iterateSet(O, function (e) {\n if (otherRec.includes(e)) add(result, e);\n });\n }\n\n return result;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSet = require('../internals/set-iterate');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isDisjointFrom` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isDisjointFrom\nmodule.exports = function isDisjointFrom(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) <= otherRec.size) return iterateSet(O, function (e) {\n if (otherRec.includes(e)) return false;\n }, true) !== false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar size = require('../internals/set-size');\nvar iterate = require('../internals/set-iterate');\nvar getSetRecord = require('../internals/get-set-record');\n\n// `Set.prototype.isSubsetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSubsetOf\nmodule.exports = function isSubsetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) > otherRec.size) return false;\n return iterate(O, function (e) {\n if (!otherRec.includes(e)) return false;\n }, true) !== false;\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar has = require('../internals/set-helpers').has;\nvar size = require('../internals/set-size');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\nvar iteratorClose = require('../internals/iterator-close');\n\n// `Set.prototype.isSupersetOf` method\n// https://tc39.github.io/proposal-set-methods/#Set.prototype.isSupersetOf\nmodule.exports = function isSupersetOf(other) {\n var O = aSet(this);\n var otherRec = getSetRecord(other);\n if (size(O) < otherRec.size) return false;\n var iterator = otherRec.getIterator();\n return iterateSimple(iterator, function (e) {\n if (!has(O, e)) return iteratorClose(iterator, 'normal', false);\n }) !== false;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar iterateSimple = require('../internals/iterate-simple');\nvar SetHelpers = require('../internals/set-helpers');\n\nvar Set = SetHelpers.Set;\nvar SetPrototype = SetHelpers.proto;\nvar forEach = uncurryThis(SetPrototype.forEach);\nvar keys = uncurryThis(SetPrototype.keys);\nvar next = keys(new Set()).next;\n\nmodule.exports = function (set, fn, interruptible) {\n return interruptible ? iterateSimple({ iterator: keys(set), next: next }, fn) : forEach(set, fn);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nvar createSetLike = function (size) {\n return {\n size: size,\n has: function () {\n return false;\n },\n keys: function () {\n return {\n next: function () {\n return { done: true };\n }\n };\n }\n };\n};\n\nmodule.exports = function (name) {\n var Set = getBuiltIn('Set');\n try {\n new Set()[name](createSetLike(0));\n try {\n // late spec change, early WebKit ~ Safari 17.0 beta implementation does not pass it\n // https://github.com/tc39/proposal-set-methods/pull/88\n new Set()[name](createSetLike(-1));\n return false;\n } catch (error2) {\n return true;\n }\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar SetHelpers = require('../internals/set-helpers');\n\nmodule.exports = uncurryThisAccessor(SetHelpers.proto, 'size', 'get') || function (set) {\n return set.size;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\nvar add = SetHelpers.add;\nvar has = SetHelpers.has;\nvar remove = SetHelpers.remove;\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function symmetricDifference(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (e) {\n if (has(O, e)) remove(result, e);\n else add(result, e);\n });\n return result;\n};\n","'use strict';\nvar 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","'use strict';\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\nvar clone = require('../internals/set-clone');\nvar getSetRecord = require('../internals/get-set-record');\nvar iterateSimple = require('../internals/iterate-simple');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\nmodule.exports = function union(other) {\n var O = aSet(this);\n var keysIter = getSetRecord(other).getIterator();\n var result = clone(O);\n iterateSimple(keysIter, function (it) {\n add(result, it);\n });\n return result;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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.32.2',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.32.2/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\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 || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar 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// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar $repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr === '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n === Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","'use strict';\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimEnd, trimRight }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\nmodule.exports = forcedStringTrimMethod('trimEnd') ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.{ trimStart, trimLeft }` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\nmodule.exports = forcedStringTrimMethod('trimStart') ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar ltrim = RegExp('^[' + whitespaces + ']+');\nvar rtrim = RegExp('(^|[^' + whitespaces + '])[' + whitespaces + ']+$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '$1');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\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","'use strict';\nvar call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Symbol = getBuiltIn('Symbol');\nvar keyFor = Symbol.keyFor;\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\nmodule.exports = Symbol.isRegisteredSymbol || function isRegisteredSymbol(value) {\n try {\n return keyFor(thisSymbolValue(value)) !== undefined;\n } catch (error) {\n return false;\n }\n};\n","'use strict';\nvar shared = require('../internals/shared');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isSymbol = require('../internals/is-symbol');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar Symbol = getBuiltIn('Symbol');\nvar $isWellKnownSymbol = Symbol.isWellKnownSymbol;\nvar getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames');\nvar thisSymbolValue = uncurryThis(Symbol.prototype.valueOf);\nvar WellKnownSymbolsStore = shared('wks');\n\nfor (var i = 0, symbolKeys = getOwnPropertyNames(Symbol), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) {\n // some old engines throws on access to some keys like `arguments` or `caller`\n try {\n var symbolKey = symbolKeys[i];\n if (isSymbol(Symbol[symbolKey])) wellKnownSymbol(symbolKey);\n } catch (error) { /* empty */ }\n}\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\nmodule.exports = function isWellKnownSymbol(value) {\n if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true;\n try {\n var symbol = thisSymbolValue(value);\n for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) {\n // eslint-disable-next-line eqeqeq -- polyfilled symbols case\n if (WellKnownSymbolsStore[keys[j]] == symbol) return true;\n }\n } catch (error) { /* empty */ }\n return false;\n};\n","'use strict';\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n global.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","'use strict';\nvar 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","'use strict';\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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isIterable = require('../internals/is-iterable');\nvar isObject = require('../internals/is-object');\n\nvar Set = getBuiltIn('Set');\n\nvar isSetLike = function (it) {\n return isObject(it)\n && typeof it.size == 'number'\n && isCallable(it.has)\n && isCallable(it.keys);\n};\n\n// fallback old -> new set methods proposal arguments\nmodule.exports = function (it) {\n if (isSetLike(it)) return it;\n return isIterable(it) ? new Set(it) : it;\n};\n","'use strict';\nvar 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","'use strict';\nvar 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","'use strict';\nvar $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 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","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar 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/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar 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 wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","'use strict';\nvar 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/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\n// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","'use strict';\nvar $ = require('../internals/export');\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 copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar installErrorCause = require('../internals/install-error-cause');\nvar installErrorStack = require('../internals/error-stack-install');\nvar iterate = require('../internals/iterate');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Error = Error;\nvar push = [].push;\n\nvar $AggregateError = function AggregateError(errors, message /* , options */) {\n var isInstance = isPrototypeOf(AggregateErrorPrototype, this);\n var that;\n if (setPrototypeOf) {\n that = setPrototypeOf($Error(), isInstance ? getPrototypeOf(this) : AggregateErrorPrototype);\n } else {\n that = isInstance ? this : create(AggregateErrorPrototype);\n createNonEnumerableProperty(that, TO_STRING_TAG, 'Error');\n }\n if (message !== undefined) createNonEnumerableProperty(that, 'message', normalizeStringArgument(message));\n installErrorStack(that, $AggregateError, that.stack, 1);\n if (arguments.length > 2) installErrorCause(that, arguments[2]);\n var errorsArray = [];\n iterate(errors, push, { that: errorsArray });\n createNonEnumerableProperty(that, 'errors', errorsArray);\n return that;\n};\n\nif (setPrototypeOf) setPrototypeOf($AggregateError, $Error);\nelse copyConstructorProperties($AggregateError, $Error, { name: true });\n\nvar AggregateErrorPrototype = $AggregateError.prototype = create($Error.prototype, {\n constructor: createPropertyDescriptor(1, $AggregateError),\n message: createPropertyDescriptor(1, ''),\n name: createPropertyDescriptor(1, 'AggregateError')\n});\n\n// `AggregateError` constructor\n// https://tc39.es/ecma262/#sec-aggregate-error-constructor\n$({ global: true, constructor: true, arity: 2 }, {\n AggregateError: $AggregateError\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.aggregate-error.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport('concat');\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-findindex -- testing\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\n// eslint-disable-next-line es/no-array-prototype-find -- testing\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n // eslint-disable-next-line es/no-array-prototype-includes -- detection\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\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/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\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 createIterResultObject(undefined, true);\n }\n switch (kind) {\n case 'keys': return createIterResultObject(index, false);\n case 'values': return createIterResultObject(target[index], false);\n } return createIterResultObject([index, target[index]], 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 uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject !== Object;\nvar FORCED = ES3_STRINGS || !arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: FORCED }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\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 nativeSort = 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 ? nativeSort(array) : nativeSort(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 = lengthOfArrayLike(items);\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","'use strict';\nvar $ = 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 isCallable = require('../internals/is-callable');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar getReplacerFunction = require('../internals/get-json-replacer-function');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $String = String;\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')('stringify detection');\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 = getReplacerFunction(replacer);\n if (!isCallable($replacer) && (it === undefined || isSymbol(it))) return; // IE8 returns string on undefined\n args[1] = function (key, value) {\n // some old implementations (like WebKit) could pass numbers as keys\n if (isCallable($replacer)) value = call($replacer, this, $String(key), value);\n if (!isSymbol(value)) return value;\n };\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","'use strict';\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","'use strict';\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar trunc = require('../internals/math-trunc');\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n$({ target: 'Math', stat: true }, {\n trunc: trunc\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar path = require('../internals/path');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar hasOwn = require('../internals/has-own-property');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar isSymbol = require('../internals/is-symbol');\nvar toPrimitive = require('../internals/to-primitive');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar thisNumberValue = require('../internals/this-number-value');\nvar trim = require('../internals/string-trim').trim;\n\nvar NUMBER = 'Number';\nvar NativeNumber = global[NUMBER];\nvar PureNumberNamespace = path[NUMBER];\nvar NumberPrototype = NativeNumber.prototype;\nvar TypeError = global.TypeError;\nvar stringSlice = uncurryThis(''.slice);\nvar charCodeAt = uncurryThis(''.charCodeAt);\n\n// `ToNumeric` abstract operation\n// https://tc39.es/ecma262/#sec-tonumeric\nvar toNumeric = function (value) {\n var primValue = toPrimitive(value, 'number');\n return typeof primValue == 'bigint' ? primValue : toNumber(primValue);\n};\n\n// `ToNumber` abstract operation\n// https://tc39.es/ecma262/#sec-tonumber\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, 'number');\n var first, third, radix, maxCode, digits, length, index, code;\n if (isSymbol(it)) throw TypeError('Cannot convert a Symbol value to a number');\n if (typeof it == 'string' && it.length > 2) {\n it = trim(it);\n first = charCodeAt(it, 0);\n if (first === 43 || first === 45) {\n third = charCodeAt(it, 2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (charCodeAt(it, 1)) {\n // fast equal of /^0b[01]+$/i\n case 66:\n case 98:\n radix = 2;\n maxCode = 49;\n break;\n // fast equal of /^0o[0-7]+$/i\n case 79:\n case 111:\n radix = 8;\n maxCode = 55;\n break;\n default:\n return +it;\n }\n digits = stringSlice(it, 2);\n length = digits.length;\n for (index = 0; index < length; index++) {\n code = charCodeAt(digits, index);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nvar FORCED = isForced(NUMBER, !NativeNumber(' 0o1') || !NativeNumber('0b1') || NativeNumber('+0x1'));\n\nvar calledWithNew = function (dummy) {\n // includes check on 1..constructor(foo) case\n return isPrototypeOf(NumberPrototype, dummy) && fails(function () { thisNumberValue(dummy); });\n};\n\n// `Number` constructor\n// https://tc39.es/ecma262/#sec-number-constructor\nvar NumberWrapper = function Number(value) {\n var n = arguments.length < 1 ? 0 : NativeNumber(toNumeric(value));\n return calledWithNew(this) ? inheritIfRequired(Object(n), this, NumberWrapper) : n;\n};\n\nNumberWrapper.prototype = NumberPrototype;\nif (FORCED && !IS_PURE) NumberPrototype.constructor = NumberWrapper;\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED }, {\n Number: NumberWrapper\n});\n\n// Use `internal/copy-constructor-properties` helper in `core-js@4`\nvar copyConstructorProperties = function (target, source) {\n for (var keys = DESCRIPTORS ? getOwnPropertyNames(source) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES2015 (in case, if modules with ES2015 Number statics required before):\n 'EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,' +\n // ESNext\n 'fromString,range'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (hasOwn(source, key = keys[j]) && !hasOwn(target, key)) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n\nif (IS_PURE && PureNumberNamespace) copyConstructorProperties(path[NUMBER], PureNumberNamespace);\nif (FORCED || IS_PURE) copyConstructorProperties(path[NUMBER], NativeNumber);\n","'use strict';\nvar $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.es/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\nvar abs = Math.abs;\n\n// `Number.isSafeInteger` method\n// https://tc39.es/ecma262/#sec-number.issafeinteger\n$({ target: 'Number', stat: true }, {\n isSafeInteger: function isSafeInteger(number) {\n return isIntegralNumber(number) && abs(number) <= 0x1FFFFFFFFFFFFF;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.es/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true, nonConfigurable: true, nonWritable: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FORCED = !DESCRIPTORS || fails(function () { nativeGetOwnPropertyDescriptor(1); });\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","'use strict';\nvar $ = require('../internals/export');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n$({ target: 'Object', stat: true }, {\n setPrototypeOf: setPrototypeOf\n});\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://tc39.es/ecma262/#sec-promise.any\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n any: function any(iterable) {\n var C = this;\n var AggregateError = getBuiltIn('AggregateError');\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (error) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = error;\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target === newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","'use strict';\nvar 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 || String(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 += 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","'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 global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = global.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) !== '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name !== TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\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/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\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 createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padEnd = require('../internals/string-pad').end;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.padend\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\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 isNullOrUndefined = require('../internals/is-null-or-undefined');\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 = isNullOrUndefined(searchValue) ? 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 var fullUnicode;\n if (global) {\n fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n\n var results = [];\n var result;\n while (true) {\n 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 var replacement;\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 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\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\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 anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] === 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length !== 4 ||\n 'ab'.split(/(?:ab)*/).length !== 2 ||\n '.'.split(/(.?)(.?)/).length !== 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-right');\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimEnd` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimEnd !== trimEnd }, {\n trimEnd: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimLeft` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimleft\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimLeft !== trimStart }, {\n trimLeft: trimStart\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar trimEnd = require('../internals/string-trim-end');\n\n// `String.prototype.trimRight` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// eslint-disable-next-line es/no-string-prototype-trimleft-trimright -- safe\n$({ target: 'String', proto: true, name: 'trimEnd', forced: ''.trimRight !== trimEnd }, {\n trimRight: trimEnd\n});\n","'use strict';\n// TODO: Remove this line from `core-js@4`\nrequire('../modules/es.string.trim-left');\nvar $ = require('../internals/export');\nvar trimStart = require('../internals/string-trim-start');\n\n// `String.prototype.trimStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n$({ target: 'String', proto: true, name: 'trimStart', forced: ''.trimStart !== trimStart }, {\n trimStart: trimStart\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a !== 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\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 defineBuiltInAccessor = require('../internals/define-built-in-accessor');\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('description detection')) === 'Symbol(description detection)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineBuiltInAccessor(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\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 $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.hasInstance` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.hasinstance\ndefineWellKnownSymbol('hasInstance');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.isConcatSpreadable` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.isconcatspreadable\ndefineWellKnownSymbol('isConcatSpreadable');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","'use strict';\nvar $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matchAll` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.matchall\ndefineWellKnownSymbol('matchAll');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.match` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.match\ndefineWellKnownSymbol('match');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.replace` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.replace\ndefineWellKnownSymbol('replace');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.search` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.search\ndefineWellKnownSymbol('search');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.species` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.species\ndefineWellKnownSymbol('species');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.split` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.split\ndefineWellKnownSymbol('split');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\n\n// `Symbol.toPrimitive` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.toprimitive\ndefineWellKnownSymbol('toPrimitive');\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.unscopables` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.unscopables\ndefineWellKnownSymbol('unscopables');\n","'use strict';\nvar FREEZING = require('../internals/freezing');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar fails = require('../internals/fails');\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar $Object = Object;\n// eslint-disable-next-line es/no-array-isarray -- safe\nvar isArray = Array.isArray;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = $Object.isExtensible;\n// eslint-disable-next-line es/no-object-isfrozen -- safe\nvar isFrozen = $Object.isFrozen;\n// eslint-disable-next-line es/no-object-issealed -- safe\nvar isSealed = $Object.isSealed;\n// eslint-disable-next-line es/no-object-freeze -- safe\nvar freeze = $Object.freeze;\n// eslint-disable-next-line es/no-object-seal -- safe\nvar seal = $Object.seal;\n\nvar FROZEN = {};\nvar SEALED = {};\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\nvar WeakMapPrototype = $WeakMap.prototype;\nvar nativeSet = uncurryThis(WeakMapPrototype.set);\n\n// Chakra Edge bug: adding frozen arrays to WeakMap unfreeze them\nvar hasMSEdgeFreezingBug = function () {\n return FREEZING && fails(function () {\n var frozenArray = freeze([]);\n nativeSet(new $WeakMap(), frozenArray, 1);\n return !isFrozen(frozenArray);\n });\n};\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP) if (IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n// Chakra Edge frozen keys fix\n} else if (hasMSEdgeFreezingBug()) {\n defineBuiltIns(WeakMapPrototype, {\n set: function set(key, value) {\n var arrayIntegrityLevel;\n if (isArray(key)) {\n if (isFrozen(key)) arrayIntegrityLevel = FROZEN;\n else if (isSealed(key)) arrayIntegrityLevel = SEALED;\n }\n nativeSet(this, key, value);\n if (arrayIntegrityLevel === FROZEN) freeze(key);\n if (arrayIntegrityLevel === SEALED) seal(key);\n return this;\n }\n });\n}\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.aggregate-error');\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar METADATA = wellKnownSymbol('metadata');\nvar FunctionPrototype = Function.prototype;\n\n// Function.prototype[@@metadata]\n// https://github.com/tc39/proposal-decorator-metadata\nif (FunctionPrototype[METADATA] === undefined) {\n defineProperty(FunctionPrototype, METADATA, {\n value: null\n });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar remove = require('../internals/map-helpers').remove;\n\n// `Map.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aMap(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.emplace` method\n// https://github.com/tc39/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n emplace: function emplace(key, handler) {\n var map = aMap(this);\n var value, inserted;\n if (has(map, key)) {\n value = get(map, key);\n if ('update' in handler) {\n value = handler.update(value, key, map);\n set(map, key, value);\n } return value;\n }\n inserted = handler.insert(key, map);\n set(map, key, inserted);\n return inserted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (!boundFunction(value, key, map)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) set(newMap, key, value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.findKey` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n findKey: function findKey(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `Map.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\n$({ target: 'Map', stat: true, forced: true }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar iterate = require('../internals/iterate');\nvar MapHelpers = require('../internals/map-helpers');\nvar IS_PURE = require('../internals/is-pure');\n\nvar Map = MapHelpers.Map;\nvar has = MapHelpers.has;\nvar get = MapHelpers.get;\nvar set = MapHelpers.set;\nvar push = uncurryThis([].push);\n\n// `Map.groupBy` method\n// https://github.com/tc39/proposal-array-grouping\n$({ target: 'Map', stat: true, forced: IS_PURE }, {\n groupBy: function groupBy(items, callbackfn) {\n requireObjectCoercible(items);\n aCallable(callbackfn);\n var map = new Map();\n var k = 0;\n iterate(items, function (value) {\n var key = callbackfn(value, k++);\n if (!has(map, key)) set(map, key, [value]);\n else push(get(map, key), value);\n });\n return map;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar sameValueZero = require('../internals/same-value-zero');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.includes` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n includes: function includes(searchElement) {\n return iterate(aMap(this), function (value) {\n if (sameValueZero(value, searchElement)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar iterate = require('../internals/iterate');\nvar isCallable = require('../internals/is-callable');\nvar aCallable = require('../internals/a-callable');\nvar Map = require('../internals/map-helpers').Map;\n\n// `Map.keyBy` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', stat: true, forced: true }, {\n keyBy: function keyBy(iterable, keyDerivative) {\n var C = isCallable(this) ? this : Map;\n var newMap = new C();\n aCallable(keyDerivative);\n var setter = aCallable(newMap.set);\n iterate(iterable, function (element) {\n call(setter, newMap, keyDerivative(element), element);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.keyOf` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n keyOf: function keyOf(searchElement) {\n var result = iterate(aMap(this), function (value, key) {\n if (value === searchElement) return { key: key };\n }, true);\n return result && result.key;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapKeys` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapKeys: function mapKeys(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, boundFunction(value, key, map), value);\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\nvar iterate = require('../internals/map-iterate');\n\nvar Map = MapHelpers.Map;\nvar set = MapHelpers.set;\n\n// `Map.prototype.mapValues` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n mapValues: function mapValues(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newMap = new Map();\n iterate(map, function (value, key) {\n set(newMap, key, boundFunction(value, key, map));\n });\n return newMap;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/iterate');\nvar set = require('../internals/map-helpers').set;\n\n// `Map.prototype.merge` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, arity: 1, forced: true }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n merge: function merge(iterable /* ...iterables */) {\n var map = aMap(this);\n var argumentsLength = arguments.length;\n var i = 0;\n while (i < argumentsLength) {\n iterate(arguments[i++], function (key, value) {\n set(map, key, value);\n }, { AS_ENTRIES: true });\n }\n return map;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `Map.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\n$({ target: 'Map', stat: true, forced: true }, {\n of: of\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\nvar $TypeError = TypeError;\n\n// `Map.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var map = aMap(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(map, function (value, key) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, key, map);\n }\n });\n if (noInitial) throw $TypeError('Reduce of empty map with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aMap = require('../internals/a-map');\nvar iterate = require('../internals/map-iterate');\n\n// `Map.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var map = aMap(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(map, function (value, key) {\n if (boundFunction(value, key, map)) return true;\n }, true) === true;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.updateOrInsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, name: 'upsert', forced: true }, {\n updateOrInsert: upsert\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aMap = require('../internals/a-map');\nvar MapHelpers = require('../internals/map-helpers');\n\nvar $TypeError = TypeError;\nvar get = MapHelpers.get;\nvar has = MapHelpers.has;\nvar set = MapHelpers.set;\n\n// `Map.prototype.update` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n update: function update(key, callback /* , thunk */) {\n var map = aMap(this);\n var length = arguments.length;\n aCallable(callback);\n var isPresentInMap = has(map, key);\n if (!isPresentInMap && length < 3) {\n throw $TypeError('Updating absent value');\n }\n var value = isPresentInMap ? get(map, key) : aCallable(length > 2 ? arguments[2] : undefined)(key, map);\n set(map, key, callback(value, key, map));\n return map;\n }\n});\n","'use strict';\n// TODO: remove from `core-js@4`\nvar $ = require('../internals/export');\nvar upsert = require('../internals/map-upsert');\n\n// `Map.prototype.upsert` method (replaced by `Map.prototype.emplace`)\n// https://github.com/thumbsupep/proposal-upsert\n$({ target: 'Map', proto: true, real: true, forced: true }, {\n upsert: upsert\n});\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.all-settled.js');\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.any');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true, forced: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://github.com/tc39/proposal-promise-with-resolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar add = require('../internals/set-helpers').add;\n\n// `Set.prototype.addAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n addAll: function addAll(/* ...elements */) {\n var set = aSet(this);\n for (var k = 0, len = arguments.length; k < len; k++) {\n add(set, arguments[k]);\n } return set;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aSet = require('../internals/a-set');\nvar remove = require('../internals/set-helpers').remove;\n\n// `Set.prototype.deleteAll` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n deleteAll: function deleteAll(/* ...elements */) {\n var collection = aSet(this);\n var allDeleted = true;\n var wasDeleted;\n for (var k = 0, len = arguments.length; k < len; k++) {\n wasDeleted = remove(collection, arguments[k]);\n allDeleted = allDeleted && wasDeleted;\n } return !!allDeleted;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $difference = require('../internals/set-difference');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n difference: function difference(other) {\n return call($difference, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar difference = require('../internals/set-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.difference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('difference') }, {\n difference: difference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.every` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n every: function every(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (!boundFunction(value, value, set)) return false;\n }, true) !== false;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.filter` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n filter: function filter(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n if (boundFunction(value, value, set)) add(newSet, value);\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.find` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n find: function find(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var result = iterate(set, function (value) {\n if (boundFunction(value, value, set)) return { value: value };\n }, true);\n return result && result.value;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar from = require('../internals/collection-from');\n\n// `Set.from` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\n$({ target: 'Set', stat: true, forced: true }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $intersection = require('../internals/set-intersection');\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n intersection: function intersection(other) {\n return call($intersection, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar intersection = require('../internals/set-intersection');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\nvar INCORRECT = !setMethodAcceptSetLike('intersection') || fails(function () {\n // eslint-disable-next-line es/no-array-from, es/no-set -- testing\n return Array.from(new Set([1, 2, 3]).intersection(new Set([3, 2]))) !== '3,2';\n});\n\n// `Set.prototype.intersection` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: INCORRECT }, {\n intersection: intersection\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isDisjointFrom = require('../internals/set-is-disjoint-from');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isDisjointFrom: function isDisjointFrom(other) {\n return call($isDisjointFrom, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isDisjointFrom = require('../internals/set-is-disjoint-from');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isDisjointFrom` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isDisjointFrom') }, {\n isDisjointFrom: isDisjointFrom\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSubsetOf = require('../internals/set-is-subset-of');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSubsetOf: function isSubsetOf(other) {\n return call($isSubsetOf, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSubsetOf = require('../internals/set-is-subset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSubsetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSubsetOf') }, {\n isSubsetOf: isSubsetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $isSupersetOf = require('../internals/set-is-superset-of');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n isSupersetOf: function isSupersetOf(other) {\n return call($isSupersetOf, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isSupersetOf = require('../internals/set-is-superset-of');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.isSupersetOf` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('isSupersetOf') }, {\n isSupersetOf: isSupersetOf\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\nvar toString = require('../internals/to-string');\n\nvar arrayJoin = uncurryThis([].join);\nvar push = uncurryThis([].push);\n\n// `Set.prototype.join` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n join: function join(separator) {\n var set = aSet(this);\n var sep = separator === undefined ? ',' : toString(separator);\n var array = [];\n iterate(set, function (value) {\n push(array, value);\n });\n return arrayJoin(array, sep);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar SetHelpers = require('../internals/set-helpers');\nvar iterate = require('../internals/set-iterate');\n\nvar Set = SetHelpers.Set;\nvar add = SetHelpers.add;\n\n// `Set.prototype.map` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n map: function map(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var newSet = new Set();\n iterate(set, function (value) {\n add(newSet, boundFunction(value, value, set));\n });\n return newSet;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar of = require('../internals/collection-of');\n\n// `Set.of` method\n// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\n$({ target: 'Set', stat: true, forced: true }, {\n of: of\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aCallable = require('../internals/a-callable');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\nvar $TypeError = TypeError;\n\n// `Set.prototype.reduce` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var set = aSet(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n aCallable(callbackfn);\n iterate(set, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = callbackfn(accumulator, value, value, set);\n }\n });\n if (noInitial) throw $TypeError('Reduce of empty set with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar bind = require('../internals/function-bind-context');\nvar aSet = require('../internals/a-set');\nvar iterate = require('../internals/set-iterate');\n\n// `Set.prototype.some` method\n// https://github.com/tc39/proposal-collection-methods\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n some: function some(callbackfn /* , thisArg */) {\n var set = aSet(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return iterate(set, function (value) {\n if (boundFunction(value, value, set)) return true;\n }, true) === true;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $symmetricDifference = require('../internals/set-symmetric-difference');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n symmetricDifference: function symmetricDifference(other) {\n return call($symmetricDifference, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar symmetricDifference = require('../internals/set-symmetric-difference');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.symmetricDifference` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('symmetricDifference') }, {\n symmetricDifference: symmetricDifference\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar toSetLike = require('../internals/to-set-like');\nvar $union = require('../internals/set-union');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n// TODO: Obsolete version, remove from `core-js@4`\n$({ target: 'Set', proto: true, real: true, forced: true }, {\n union: function union(other) {\n return call($union, this, toSetLike(other));\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar union = require('../internals/set-union');\nvar setMethodAcceptSetLike = require('../internals/set-method-accept-set-like');\n\n// `Set.prototype.union` method\n// https://github.com/tc39/proposal-set-methods\n$({ target: 'Set', proto: true, real: true, forced: !setMethodAcceptSetLike('union') }, {\n union: union\n});\n","'use strict';\nvar global = require('../internals/global');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = global.Symbol;\n\n// `Symbol.asyncDispose` well-known symbol\n// https://github.com/tc39/proposal-async-explicit-resource-management\ndefineWellKnownSymbol('asyncDispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'asyncDispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'asyncDispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar global = require('../internals/global');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\n\nvar Symbol = global.Symbol;\n\n// `Symbol.dispose` well-known symbol\n// https://github.com/tc39/proposal-explicit-resource-management\ndefineWellKnownSymbol('dispose');\n\nif (Symbol) {\n var descriptor = getOwnPropertyDescriptor(Symbol, 'dispose');\n // workaround of NodeJS 20.4 bug\n // https://github.com/nodejs/node/issues/48699\n // and incorrect descriptor from some transpilers and userland helpers\n if (descriptor.enumerable && descriptor.configurable && descriptor.writable) {\n defineProperty(Symbol, 'dispose', { value: descriptor.value, enumerable: false, configurable: false, writable: false });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegisteredSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true }, {\n isRegisteredSymbol: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isRegisteredSymbol = require('../internals/symbol-is-registered');\n\n// `Symbol.isRegistered` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol\n$({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, {\n isRegistered: isRegisteredSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnownSymbol` method\n// https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, forced: true }, {\n isWellKnownSymbol: isWellKnownSymbol\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isWellKnownSymbol = require('../internals/symbol-is-well-known');\n\n// `Symbol.isWellKnown` method\n// obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol\n// We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected\n$({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, {\n isWellKnown: isWellKnownSymbol\n});\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.matcher` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('matcher');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadataKey` well-known symbol\n// https://github.com/tc39/proposal-decorator-metadata\ndefineWellKnownSymbol('metadataKey');\n","'use strict';\n// TODO: Remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.metadata` well-known symbol\n// https://github.com/tc39/proposal-decorators\ndefineWellKnownSymbol('metadata');\n","'use strict';\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.observable` well-known symbol\n// https://github.com/tc39/proposal-observable\ndefineWellKnownSymbol('observable');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.patternMatch` well-known symbol\n// https://github.com/tc39/proposal-pattern-matching\ndefineWellKnownSymbol('patternMatch');\n","'use strict';\n// TODO: remove from `core-js@4`\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\ndefineWellKnownSymbol('replaceAll');\n","'use strict';\nvar 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 parent = require('../../es/array/fill');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/array/find-index');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/array/find');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/array/from');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/array/includes');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/map');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/object/assign');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/promise/finally');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/promise');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/set');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../es/symbol');\nrequire('../../modules/web.dom-collections.iterator');\n\nmodule.exports = parent;\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","'use strict';\n\nvar safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var cache = null;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (cache && cache.lastThis === this && isEqual(newArgs, cache.lastArgs)) {\n return cache.lastResult;\n }\n var lastResult = resultFn.apply(this, newArgs);\n cache = {\n lastResult: lastResult,\n lastArgs: newArgs,\n lastThis: this,\n };\n return lastResult;\n }\n memoized.clear = function clear() {\n cache = null;\n };\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (\"production\" !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (\"production\" !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (\"production\" !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (\"production\" !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (\"production\" !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (\"production\" !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (\"production\" !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n \"production\" !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n/**\n * Y-combinator\n *\n * The Y combinator is an interesting function which only works with functional languages,\n * showing how recursion can still be done even without any variable or function declarations,\n * only functions and parameters\n *\n * @func Y\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig (a, ... -> b -> b) -> (a, ... -> b)\n * @param {Function} le Recursive function maker\n * @return {Function}\n * @see {@link http://kestas.kuliukas.com/YCombinatorExplained/|Y combinator explained}\n * @example\n *\n * const makeFact = givenFact => (n) => {\n * if (n < 2) { return 1 }\n * return n * givenFact(n - 1);\n * };\n *\n * const factorial = RA.Y(makeFact);\n *\n * factorial(5); //=> 120\n */\nvar Y = function Y(le) {\n return function (f) {\n return f(f);\n }(function (g) {\n return le(function (x) {\n return g(g)(x);\n });\n });\n};\n\nvar _default = Y;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _lengthLte = _interopRequireDefault(require(\"./lengthLte\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// Original idea for this function was conceived by https://github.com/jackmellis\n// in https://github.com/char0n/ramda-adjunct/pull/513.\n\n/**\n * Returns true if all items in the list are equivalent using `R.equals` for equality comparisons.\n *\n * @func allEqual\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.9.0|v2.9.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allEqual([ 1, 2, 3, 4 ]); //=> false\n * RA.allEqual([ 1, 1, 1, 1 ]); //=> true\n * RA.allEqual([]); //=> true\n *\n */\nvar allEqual = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.uniq, (0, _lengthLte[\"default\"])(1)));\nvar _default = allEqual;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if all items in the list are equivalent to user provided value using `R.equals` for equality comparisons.\n *\n * @func allEqualTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig a -> [b] -> Boolean\n * @param {*} val User provided value to check the `list` against\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allEqual|allEqual}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allEqualTo(1, [ 1, 2, 3, 4 ]); //=> false\n * RA.allEqualTo(1, [ 1, 1, 1, 1 ]); //=> true\n * RA.allEqualTo({}, [ {}, {} ]); //=> true\n * RA.allEqualTo(1, []); //=> true\n *\n */\nvar allEqualTo = (0, _ramda.curry)(function (val, list) {\n return (0, _ramda.all)((0, _ramda.equals)(val), list);\n});\nvar _default = allEqualTo;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _lengthLte = _interopRequireDefault(require(\"./lengthLte\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns true if all items in the list are equivalent using `R.identical` for equality comparisons.\n *\n * @func allIdentical\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link https://ramdajs.com/docs/#identical|identical}\n * @example\n *\n * RA.allIdentical([ 1, 2, 3, 4 ]); //=> false\n * RA.allIdentical([ 1, 1, 1, 1 ]); //=> true\n * RA.allIdentical([]); //=> true\n * RA.allIdentical([ {}, {} ]); //=> false\n * RA.allIdentical([ () => {}, () => {} ]); //=> false\n */\nvar allIdentical = (0, _curry[\"default\"])((0, _ramda.pipe)((0, _ramda.uniqWith)(_ramda.identical), (0, _lengthLte[\"default\"])(1)));\nvar _default = allIdentical;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if all items in the list are equivalent to user provided value using `R.identical` for equality comparisons.\n *\n * @func allIdenticalTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig a -> [b] -> Boolean\n * @param {*} val User provided value to check the `list` against\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allIdentical|allIdentical}, {@link http://ramdajs.com/docs/#identical|R.identical}\n * @example\n *\n * RA.allIdenticalTo(1, [ 1, 2, 3, 4 ]); //=> false\n * RA.allIdenticalTo(1, [ 1, 1, 1, 1 ]); //=> true\n * RA.allIdenticalTo(1, []); //=> true\n * RA.allIdenticalTo({}, [ {}, {} ]); //=> false\n *\n */\nvar allIdenticalTo = (0, _ramda.curry)(function (val, list) {\n return (0, _ramda.all)((0, _ramda.identical)(val), list);\n});\nvar _default = allIdenticalTo;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Composable shortcut for `Promise.all`.\n *\n * The `allP` method returns a single Promise that resolves when all of the promises\n * in the iterable argument have resolved or when the iterable argument contains no promises.\n * It rejects with the reason of the first promise that rejects.\n *\n * @func allP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig [Promise a] -> Promise [a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} An already resolved Promise if the iterable passed is empty. An asynchronously resolved Promise if the iterable passed contains no promises. Note, Google Chrome 58 returns an already resolved promise in this case. A pending Promise in all other cases. This returned promise is then resolved/rejected asynchronously (as soon as the stack is empty) when all the promises in the given iterable have resolved, or if any of the promises reject. See the example about \"Asynchronicity or synchronicity of allP\" below.\n * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}\n * @example\n *\n * RA.allP([1, 2]); //=> Promise([1, 2])\n * RA.allP([1, Promise.resolve(2)]); //=> Promise([1, 2])\n * RA.allP([Promise.resolve(1), Promise.resolve(2)]); //=> Promise([1, 2])\n * RA.allP([1, Promise.reject(2)]); //=> Promise(2)\n */\nvar allP = (0, _curry[\"default\"])((0, _ramda.bind)(Promise.all, Promise));\nvar _default = allP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.allSettledPPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Promise = _interopRequireDefault(require(\"./internal/polyfills/Promise.allSettled\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar allSettledPPolyfill = (0, _curry[\"default\"])(_Promise[\"default\"]);\n/**\n * Returns a promise that is fulfilled with an array of promise state snapshots,\n * but only after all the original promises have settled, i.e. become either fulfilled or rejected.\n * We say that a promise is settled if it is not pending, i.e. if it is either fulfilled or rejected.\n *\n * @func allSettledP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Function\n * @typedef Settlement = { status: String, value: * }\n * @sig [Promise a] -> Promise [Settlement a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} Returns a promise that is fulfilled with an array of promise state snapshots\n * @see {@link RA.allP|allP}\n * @example\n *\n * RA.allSettledP([\n * Promise.resolve(1),\n * 2,\n * Promise.reject(3),\n * ]); //=> Promise([{ status: 'fulfilled', value: 1 }, { status: 'fulfilled', value: 2 }, { status: 'rejected', reason: 3 }])\n */\n\nexports.allSettledPPolyfill = allSettledPPolyfill;\nvar allSettledP = (0, _isFunction[\"default\"])(Promise.allSettled) ? (0, _curry[\"default\"])((0, _ramda.bind)(Promise.allSettled, Promise)) : allSettledPPolyfill;\nvar _default = allSettledP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _lengthEq = _interopRequireDefault(require(\"./lengthEq\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns true if all items in the list are unique. `R.equals` is used to determine equality.\n *\n * @func allUnique\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.notAllUnique|notAllUnique}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.allUnique([ 1, 2, 3, 4 ]); //=> true\n * RA.allUnique([ 1, 1, 2, 3 ]); //=> false\n * RA.allUnique([]); //=> true\n *\n */\nvar allUnique = (0, _ramda.converge)(_lengthEq[\"default\"], [_ramda.length, _ramda.uniq]);\nvar _default = allUnique;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.__esModule = true;\nexports[\"default\"] = exports.anyPPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Promise = _interopRequireWildcard(require(\"./internal/polyfills/Promise.any\"));\n\nexports.AggregatedError = _Promise.AggregatedError;\n\nfunction _getRequireWildcardCache() { if (typeof WeakMap !== \"function\") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar anyPPolyfill = (0, _curry[\"default\"])(_Promise[\"default\"]);\nexports.anyPPolyfill = anyPPolyfill;\n\n/**\n * Returns a promise that is fulfilled by the first given promise to be fulfilled,\n * or rejected with an array of rejection reasons if all of the given promises are rejected.\n *\n * @func anyP\n * @memberOf RA\n * @category Function\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig [Promise a] -> Promise a\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A promise that is fulfilled by the first given promise to be fulfilled, or rejected with an array of rejection reasons if all of the given promises are rejected\n * @see {@link RA.lastP|lastP}\n * @example\n *\n * RA.anyP([\n * Promise.resolve(1),\n * 2,\n * Promise.reject(3),\n * ]); //=> Promise(1)\n */\nvar anyP = (0, _isFunction[\"default\"])(Promise.any) ? (0, _curry[\"default\"])((0, _ramda.bind)(Promise.any, Promise)) : anyPPolyfill;\nvar _default = anyP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns a new list containing the contents of the given list, followed by the given element.\n * Like {@link http://ramdajs.com/docs/#append|R.append} but with argument order reversed.\n *\n * @func appendFlipped\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @sig [a] -> a -> [a]\n * @param {Array} list The list of elements to add a new item to\n * @param {*} el The element to add to the end of the new list\n * @return {Array} A new list containing the elements of the old list followed by `el`\n * @see {@link http://ramdajs.com/docs/#append|R.append}\n * @example\n *\n * RA.appendFlipped(['write', 'more'], 'tests'); //=> ['write', 'more', 'tests']\n * RA.appendFlipped([], 'tests'); //=> ['tests']\n * RA.appendFlipped(['write', 'more'], ['tests']); //=> ['write', 'more', ['tests']]\n */\nvar appendFlipped = (0, _ramda.flip)(_ramda.append);\nvar _default = appendFlipped;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _list = _interopRequireDefault(require(\"./list\"));\n\nvar _isTruthy = _interopRequireDefault(require(\"./isTruthy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Takes a combining predicate and a list of functions and returns a function which will map the\n * arguments it receives to the list of functions and returns the result of passing the values\n * returned from each function to the combining predicate. A combining predicate is a function that\n * combines a list of Boolean values into a single Boolean value, such as `R.any` or `R.all`. It\n * will test each value using `RA.isTruthy`, meaning the functions don't necessarily have to be\n * predicates.\n *\n * The function returned is curried to the number of functions supplied, and if called with more\n * arguments than functions, any remaining arguments are passed in to the combining predicate\n * untouched.\n *\n * @func argsPass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|v2.7.0}\n * @category Logic\n * @sig ((* -> Boolean) -> [*] -> Boolean) -> [(* -> Boolean), ...] -> (*...) -> Boolean\n * @param {Function} combiningPredicate The predicate used to combine the values returned from the\n * list of functions\n * @param {Array} functions List of functions\n * @return {boolean} Returns the combined result of mapping arguments to functions\n * @example\n *\n * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 'abc') //=> true\n * RA.argsPass(R.all, [RA.isArray, RA.isBoolean, RA.isString])([], false, 1) //=> false\n * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> true\n * RA.argsPass(R.any, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> false\n * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, false) //=> true\n * RA.argsPass(R.none, [RA.isArray, RA.isBoolean, RA.isString])({}, 1, 'abc') //=> false\n */\nvar argsPass = (0, _ramda.curry)(function (combiningPredicate, predicates) {\n return (0, _ramda.useWith)((0, _ramda.compose)(combiningPredicate(_isTruthy[\"default\"]), _list[\"default\"]), predicates);\n});\nvar _default = argsPass;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _resolveP = _interopRequireDefault(require(\"./resolveP\"));\n\nvar _rejectP = _interopRequireDefault(require(\"./rejectP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Takes a generator function and returns an async function.\n * The async function returned is a curried function whose arity matches that of the generator function.\n *\n * Note: This function is handy for environments that does support generators but doesn't support async/await.\n *\n * @func async\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.16.0|v2.16.0}\n * @category Function\n * @sig Promise c => (a, b, ...) -> a -> b -> ... -> c\n * @param {Function} generatorFn The generator function\n * @return {Function} Curried async function\n * @see {@link https://www.promisejs.org/generators/}\n * @example\n *\n * const asyncFn = RA.async(function* generator(val1, val2) {\n * const a = yield Promise.resolve(val1);\n * const b = yield Promise.resolve(val2);\n *\n * return a + b;\n * });\n *\n * asyncFn(1, 2); //=> Promise(3)\n *\n */\nvar async = (0, _curry[\"default\"])(function (generatorFn) {\n function asyncWrapper() {\n var iterator = (0, _ramda.bind)(generatorFn, this).apply(void 0, arguments);\n\n var handle = function handle(result) {\n var resolved = (0, _resolveP[\"default\"])(result.value);\n return result.done ? resolved : resolved.then(function (value) {\n return handle(iterator.next(value));\n }, function (error) {\n return handle(iterator[\"throw\"](error));\n });\n };\n\n try {\n return handle(iterator.next());\n } catch (error) {\n return (0, _rejectP[\"default\"])(error);\n }\n }\n\n if (generatorFn.length > 0) {\n return (0, _ramda.curryN)(generatorFn.length, asyncWrapper);\n }\n\n return asyncWrapper;\n});\nvar _default = async;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * The catamorphism is a way of folding a type into a value.\n *\n * **Either**\n *\n * If the either is right then the right function will be executed with\n * the `right` value and the value of the function returned. Otherwise the left function\n * will be called with the `left` value.\n *\n * **Maybe**\n *\n * If the maybe is Some than the right function will be executed with the `some` value and the value of the function\n * returned. Otherwise the left function with be called without an argument.\n *\n * **Result**\n *\n * If the result is Ok than the right function will be executed with the `Ok` value and the value of the function\n * returned. Otherwise the left function will be called with the `Error` value.\n *\n * **Validation**\n *\n * If the validation is Success than the right function will be executed with the `Success` value and the value of the function\n * returned. Otherwise the left function will be called with the `Failure` value.\n *\n * Supported monadic libraries: {@link https://monet.github.io/monet.js/|monet.js}, {@link https://folktale.origamitower.com/|folktale}, {@link https://github.com/ramda/ramda-fantasy|ramda-fantasy}\n *\n * @func cata\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.4.0|v1.4.0}\n * @category Function\n * @sig (a -> b) -> (a -> c) -> Cata a -> b | c\n * @param {Function} leftFn The left function that consumes the left value\n * @param {Function} rightFn The right function that consumes the right value\n * @param {Cata} catamorphicObj Either, Maybe or any other type with catamorphic capabilities (`cata` or `either` method)\n * @return {*}\n * @see {@link https://monet.github.io/monet.js/#cata|cata explained}\n * @example\n *\n * // Either\n * const eitherR = Either.Right(1);\n * const eitherL = Either.Left(2);\n *\n * RA.cata(identity, identity, eitherR); //=> 1\n * RA.cata(identity, identity, eitherL); //=> 2\n *\n * // Maybe\n * const maybeSome = Maybe.Some(1);\n * const maybeNothing = Maybe.Nothing();\n *\n * RA.cata(identity, identity, maybeSome); //=> 1\n * RA.cata(identity, identity, maybeNothing); //=> undefined\n */\nvar catamorphism = (0, _ramda.curry)(function (leftFn, rightFn, catamorphicObj) {\n // folktale support\n if ((0, _isFunction[\"default\"])(catamorphicObj.matchWith)) {\n return catamorphicObj.matchWith({\n // Result type\n Ok: function Ok(_ref) {\n var value = _ref.value;\n return rightFn(value);\n },\n Error: function Error(_ref2) {\n var value = _ref2.value;\n return leftFn(value);\n },\n // Maybe type\n Just: function Just(_ref3) {\n var value = _ref3.value;\n return rightFn(value);\n },\n Nothing: function Nothing() {\n return leftFn(undefined);\n },\n // Validation type\n Success: function Success(_ref4) {\n var value = _ref4.value;\n return rightFn(value);\n },\n Failure: function Failure(_ref5) {\n var value = _ref5.value;\n return leftFn(value);\n }\n });\n }\n\n if ((0, _isFunction[\"default\"])(catamorphicObj.cata)) {\n return catamorphicObj.cata(leftFn, rightFn);\n }\n\n if ((0, _isFunction[\"default\"])(catamorphicObj.getOrElse)) {\n var elseValue = \"RA.cata\".concat(Math.random());\n var value = catamorphicObj.getOrElse(elseValue);\n return value === elseValue ? leftFn() : rightFn(value);\n }\n\n return catamorphicObj.either(leftFn, rightFn);\n});\nvar _default = catamorphism;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns the smallest integer greater than or equal to a given number.\n *\n * Note: ceil(null) returns integer 0 and does not give a NaN error.\n *\n * @func ceil\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to ceil\n * @return {number} The smallest integer greater than or equal to the given number\n * @example\n *\n * RA.ceil(.95); //=> 1\n * RA.ceil(4); //=> 4\n * RA.ceil(7.004); //=> 8\n * RA.ceil(-0.95); //=> -0\n * RA.ceil(-4); //=> -4\n * RA.ceil(-7.004); //=> -7\n * RA.ceil(null); //=> 0\n */\nvar ceil = (0, _curry[\"default\"])((0, _ramda.bind)(Math.ceil, Math));\nvar _default = ceil;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFalsy = _interopRequireDefault(require(\"./isFalsy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates an array with all falsy values removed.\n * The values false, null, 0, \"\", undefined, and NaN are falsy.\n *\n * @func compact\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @sig Filterable f => f a -> f a\n * @param {Array} list The array to compact\n * @return {Array} Returns the new array of filtered values\n * @see {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.compact([0, 1, false, 2, '', 3]); //=> [1, 2, 3]\n */\nvar compact = (0, _ramda.reject)(_isFalsy[\"default\"]);\nvar _default = compact;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _stubUndefined = _interopRequireDefault(require(\"./stubUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar leftIdentitySemigroup = {\n concat: _ramda.identity\n};\n/**\n * Returns the result of concatenating the given lists or strings.\n * Note: RA.concatAll expects all elements to be of the same type. It will throw an error if you concat an Array with a non-Array value.\n * Dispatches to the concat method of the preceding element, if present. Can also concatenate multiple elements of a [fantasy-land compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n * Returns undefined if empty array was passed.\n *\n * @func concatAll\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category List\n * @sig [[a]] -> [a] | Undefined\n * @sig [String] -> String | Undefined\n * @sig Semigroup s => Foldable s f => f -> s | Undefined\n * @param {Array.<Array|string>} list List containing elements that will be concatenated\n * @return {Array|string|undefined} Concatenated elements\n * @see {@link http://ramdajs.com/docs/#concat|R.concat}, {@link RA.concatRight|concatRight}, {@link http://ramdajs.com/docs/#unnest|R.unnest}, {@link http://ramdajs.com/docs/#join|R.join}\n * @example\n *\n * concatAll([[1], [2], [3]]); //=> [1, 2, 3]\n * concatAll(['1', '2', '3']); //=> '123'\n * concatAll([]); //=> undefined;\n */\n\nvar concatAll = (0, _ramda.pipe)((0, _ramda.reduce)(_ramda.concat, leftIdentitySemigroup), (0, _ramda.when)((0, _ramda.identical)(leftIdentitySemigroup), _stubUndefined[\"default\"]));\nvar _default = concatAll;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: R.concat expects both arguments to be of the same type, unlike\n * the native Array.prototype.concat method.\n * It will throw an error if you concat an Array with a non-Array value.\n * Dispatches to the concat method of the second argument, if present.\n *\n * @func concatRight\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.11.0|v1.11.0}\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `secondList`\n * followed by the elements of `firstList`.\n * @see {@link http://ramdajs.com/docs/#concat|R.concat}\n * @example\n *\n * RA.concatRight('ABC', 'DEF'); //=> 'DEFABC'\n * RA.concatRight([4, 5, 6], [1, 2, 3]); //=> [1, 2, 3, 4, 5, 6]\n * RA.concatRight([], []); //=> []\n */\nvar concatRight = (0, _ramda.flip)(_ramda.concat);\nvar _default = concatRight;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if the specified value is equal, in R.equals terms,\n * to at least one element of the given list or false otherwise.\n * Given list can be a string.\n *\n * Like {@link http://ramdajs.com/docs/#contains|R.contains} but with argument order reversed.\n *\n * @func contained\n * @aliases included\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @deprecated since v2.12.0; please use RA.included alias\n * @category List\n * @sig [a] -> a -> Boolean\n * @param {Array|String} list The list to consider\n * @param {*} a The item to compare against\n * @return {boolean} Returns Boolean `true` if an equivalent item is in the list or `false` otherwise\n * @see {@link http://ramdajs.com/docs/#contains|R.contains}\n * @example\n *\n * RA.contained([1, 2, 3], 3); //=> true\n * RA.contained([1, 2, 3], 4); //=> false\n * RA.contained([{ name: 'Fred' }], { name: 'Fred' }); //=> true\n * RA.contained([[42]], [42]); //=> true\n */\nvar contained = (0, _ramda.flip)(_ramda.contains);\nvar _default = contained;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curryRightN = _interopRequireDefault(require(\"./curryRightN\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns a curried equivalent of the provided function.\n * This function is like curry, except that the provided arguments order is reversed.\n *\n * @func curryRight\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.0}\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry\n * @return {Function} A new, curried function\n * @see {@link http://ramdajs.com/docs/#curry|R.curry}, {@link RA.curryRightN|curryRightN}\n * @example\n *\n * const concatStrings = (a, b, c) => a + b + c;\n * const concatStringsCurried = RA.curryRight(concatStrings);\n *\n * concatStringCurried('a')('b')('c'); // => 'cba'\n */\nvar curryRight = (0, _ramda.converge)(_curryRightN[\"default\"], [_ramda.length, _ramda.identity]);\nvar _default = curryRight;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns a curried equivalent of the provided function, with the specified arity.\n * This function is like curryN, except that the provided arguments order is reversed.\n *\n * @func curryRightN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.12.0|v1.12.0}\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function\n * @param {Function} fn The function to curry\n * @return {Function} A new, curried function\n * @see {@link http://ramdajs.com/docs/#curryN|R.curryN}, {@link RA.curryRight|curryRight}\n * @example\n *\n * const concatStrings = (a, b, c) => a + b + c;\n * const concatStringsCurried = RA.curryRightN(3, concatStrings);\n *\n * concatStringCurried('a')('b')('c'); // => 'cba'\n */\nvar curryRightN = (0, _ramda.curryN)(2, function (arity, fn) {\n return (0, _ramda.curryN)(arity, function wrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return fn.apply(this, (0, _ramda.reverse)(args));\n });\n});\nvar _default = curryRightN;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns the second argument if predicate function returns `true`,\n * otherwise the third argument is returned.\n *\n * @func defaultWhen\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Logic\n * @sig (a -> Boolean) -> b -> a -> a | b\n * @param {!function} predicate The predicate function\n * @param {*} defaultVal The default value\n * @param {*} val `val` will be returned instead of `defaultVal` if predicate returns false\n * @return {*} The `val` if predicate returns `false`, otherwise the default value\n * @see {@link http://ramdajs.com/docs/#defaultTo|R.defaultTo}\n * @example\n *\n * RA.defaultWhen(RA.isNull, 1, null); // => 1\n * RA.defaultWhen(RA.isNull, 1, 2); // => 2\n */\nvar defaultWhen = (0, _ramda.curry)(function (predicate, defaultVal, val) {\n return predicate(val) ? defaultVal : val;\n});\nvar _default = defaultWhen;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNonNegative = _interopRequireDefault(require(\"./isNonNegative\"));\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates a promise which resolves/rejects after the specified milliseconds.\n *\n * @func delayP\n * @memberOf RA\n * @category Function\n * @sig Number -> Promise Undefined\n * @sig {timeout: Number, value: a} -> Promise a\n * @param {number|Object} milliseconds number of milliseconds or options object\n * @return {Promise} A Promise that is resolved/rejected with the given value (if provided) after the specified delay\n * @example\n *\n * RA.delayP(200); //=> Promise(undefined)\n * RA.delayP({ timeout: 1000, value: 'hello world' }); //=> Promise('hello world')\n * RA.delayP.reject(100); //=> Promise(undefined)\n * RA.delayP.reject({ timeout: 100, value: new Error('error') }); //=> Promise(Error('error'))\n */\nvar makeDelay = (0, _ramda.curry)(function (settleFnPicker, opts) {\n var timeout;\n var value;\n\n if ((0, _isInteger[\"default\"])(opts) && (0, _isNonNegative[\"default\"])(opts)) {\n timeout = opts;\n } else {\n timeout = (0, _ramda.propOr)(0, 'timeout', opts);\n value = (0, _ramda.propOr)(value, 'value', opts);\n }\n\n return new Promise(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var settleFn = settleFnPicker(args);\n setTimeout((0, _ramda.partial)(settleFn, [value]), timeout);\n });\n});\nvar delayP = makeDelay((0, _ramda.nth)(0));\ndelayP.reject = makeDelay((0, _ramda.nth)(1));\nvar _default = delayP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNotNil = _interopRequireDefault(require(\"./isNotNil\"));\n\nvar _isNonEmptyArray = _interopRequireDefault(require(\"./isNonEmptyArray\"));\n\nvar _stubUndefined = _interopRequireDefault(require(\"./stubUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar byArity = (0, _ramda.comparator)(function (a, b) {\n return a.length > b.length;\n});\nvar getMaxArity = (0, _ramda.pipe)((0, _ramda.sort)(byArity), _ramda.head, (0, _ramda.prop)('length'));\nvar iteratorFn = (0, _ramda.curry)(function (args, accumulator, fn) {\n var result = fn.apply(void 0, _toConsumableArray(args));\n return (0, _isNotNil[\"default\"])(result) ? (0, _ramda.reduced)(result) : accumulator;\n});\n\nvar dispatchImpl = function dispatchImpl(functions) {\n var arity = getMaxArity(functions);\n return (0, _ramda.curryN)(arity, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return (0, _ramda.reduce)(iteratorFn(args), undefined, functions);\n });\n};\n\nvar dispatch = (0, _ramda.ifElse)(_isNonEmptyArray[\"default\"], dispatchImpl, _stubUndefined[\"default\"]);\nvar _default = dispatch;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Divides two numbers, where the second number is divided by the first number.\n *\n * @func divideNum\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Math\n * @sig Number -> Number -> Number\n * @param {number} divisor the number to divide by\n * @param {number} dividend the number to divide\n * @return {number} A number representing the quotient of dividing the dividend by the divisor\n * @example\n *\n * RA.divideNum(2, 1); //=> 0.5\n */\nvar divideNum = (0, _ramda.flip)(_ramda.divide);\nvar _default = divideNum;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Accepts a function with any arity and returns a function with arity of zero.\n * The returned function ignores any arguments supplied to it.\n *\n * @func dropArgs\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.10.0|v2.10.0}\n * @category Logic\n * @sig (...a -> b)-> () -> b\n * @param {Function} fn The function with any arity\n * @return {Function} Returns function with arity of zero\n * @see {@link http://ramdajs.com/docs/#nAry|R.nAry}\n * @example\n *\n * const fn = (a = 1, b = 2) => a + b;\n *\n * RA.dropArgs(fn)('ignore1', 'ignore2'); //=> 3\n */\nvar dropArgs = (0, _ramda.nAry)(0);\nvar _default = dropArgs;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNotArray = _interopRequireDefault(require(\"./isNotArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns a singleton array containing the value provided.\n * If value is already an array, it is returned as is.\n *\n * @func ensureArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category List\n * @sig a | [a] -> [a]\n * @param {*|Array} val the value ensure as Array\n * @return {Array}\n * @see {@link http://ramdajs.com/docs/#of|R.of}\n * @example\n *\n * RA.ensureArray(42); //=> [42]\n * RA.ensureArray([42]); //=> [42]\n */\nvar ensureArray = (0, _ramda.when)(_isNotArray[\"default\"], _ramda.of);\nvar _default = ensureArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isString = _interopRequireDefault(require(\"./isString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Escapes the RegExp special characters.\n *\n * @func escapeRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.21.0|v2.21.0}\n * @category String\n * @sig String -> String\n * @param {string} val the value to escape\n * @return {string}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping|MDN Regular Expressions Escaping}\n * @example\n *\n * RA.escapeRegExp('[ramda-adjunct](https://github.com/char0n/ramda-adjunct)'); //=> '\\[ramda\\-adjunct\\]\\(https://github\\.com/char0n/ramda\\-adjunct\\)'\n */\nvar escapeRegExp = (0, _ramda.when)(_isString[\"default\"], (0, _ramda.replace)(/[.*+?^${}()|[\\]\\\\-]/g, '\\\\$&'));\nvar _default = escapeRegExp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _mapping = _interopRequireDefault(require(\"./mapping\"));\n\nvar _traits = require(\"./traits\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n// we do this here for jsdocs generate properly\nvar of = _mapping[\"default\"].of,\n _ap = _mapping[\"default\"].ap,\n _map = _mapping[\"default\"].map,\n _equals = _mapping[\"default\"].equals,\n _concat = _mapping[\"default\"].concat,\n _chain = _mapping[\"default\"].chain,\n _lte = _mapping[\"default\"].lte,\n _empty = _mapping[\"default\"].empty,\n _contramap = _mapping[\"default\"].contramap;\n/**\n * The simplest {@link https://github.com/fantasyland/fantasy-land|fantasy-land}\n * compatible monad which attaches no information to values.\n *\n * The Identity type is a very simple type that has no interesting side effects and\n * is effectively just a container of some value. So why does it exist ?\n * The Identity type is often used as the base monad of a monad\n * transformer when no other behaviour is required.\n *\n * @memberOf RA\n * @implements\n * {@link https://github.com/fantasyland/fantasy-land#apply|Apply},\n * {@link https://github.com/fantasyland/fantasy-land#applicative|Applicative},\n * {@link https://github.com/fantasyland/fantasy-land#functor|Functor},\n * {@link https://github.com/fantasyland/fantasy-land#setoid|Setoid},\n * {@link https://github.com/fantasyland/fantasy-land#semigroup|Semigroup},\n * {@link https://github.com/fantasyland/fantasy-land#chain|Chain},\n * {@link https://github.com/fantasyland/fantasy-land#monad|Monad},\n * {@link https://github.com/fantasyland/fantasy-land#ord|Ord},\n * {@link https://github.com/fantasyland/fantasy-land#monoid|Monoid*},\n * {@link https://github.com/fantasyland/fantasy-land#contravariant|Contravariant}\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n */\n\nvar Identity =\n/*#__PURE__*/\nfunction () {\n _createClass(Identity, null, [{\n key: of,\n\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#applicative|Applicative} specification.\n *\n * @static\n * @sig of :: Applicative f => a -> f a\n * @param {*} value\n * @returns {RA.Identity}\n * @example\n *\n * const a = Identity.of(1); //=> Identity(1)\n */\n value: function value(_value) {\n return new Identity(_value);\n }\n }, {\n key: \"of\",\n value: function of(value) {\n return new Identity(value);\n }\n /**\n * @static\n */\n\n }, {\n key: '@@type',\n get: function get() {\n return 'RA/Identity';\n }\n /**\n * Private constructor. Use {@link RA.Identity.of|Identity.of} instead.\n *\n * @private\n * @param {*} value\n * @return {RA.Identity}\n */\n\n }]);\n\n function Identity(value) {\n _classCallCheck(this, Identity);\n\n this.value = value;\n }\n /**\n * Catamorphism for a value.\n * @returns {*}\n * @example\n *\n * const a = Identity.of(1);\n * a.get(); //=> 1\n */\n\n\n _createClass(Identity, [{\n key: \"get\",\n value: function get() {\n return this.value;\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#apply|Apply} specification.\n *\n * @sig ap :: Apply f => f a ~> f (a -> b) -> f b\n * @param {RA.Identity} applyWithFn\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1).map(a => b => a + b);\n *\n * a.ap(b); //=> Identity(2)\n */\n\n }, {\n key: _ap,\n value: function value(applyWithFn) {\n return _traits.applyTrait[_ap].call(this, applyWithFn);\n }\n }, {\n key: \"ap\",\n value: function ap(applyWithFn) {\n return this[_ap](applyWithFn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#functor|Functor} specification.\n *\n * @sig map :: Functor f => f a ~> (a -> b) -> f b\n * @param {Function} fn\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * a.map(a => a + 1); //=> Identity(2)\n */\n\n }, {\n key: _map,\n value: function value(fn) {\n return _traits.functorTrait[_map].call(this, fn);\n }\n }, {\n key: \"map\",\n value: function map(fn) {\n return this[_map](fn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#setoid|Setoid} specification.\n *\n * @sig equals :: Setoid a => a ~> a -> Boolean\n * @param {RA.Identity} setoid\n * @return {boolean}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * const c = Identity.of(2);\n *\n * a.equals(b); //=> true\n * a.equals(c); //=> false\n */\n\n }, {\n key: _equals,\n value: function value(setoid) {\n return _traits.setoidTrait[_equals].call(this, setoid);\n }\n }, {\n key: \"equals\",\n value: function equals(setoid) {\n return this[_equals](setoid);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#semigroup|Semigroup} specification.\n *\n * @sig concat :: Semigroup a => a ~> a -> a\n * @param {RA.Identity} semigroup\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * a.concat(b); //=> 2\n *\n * const c = Identity.of('c');\n * const d = Identity.of('d');\n * c.concat(d); //=> 'cd'\n *\n * const e = Identity.of(['e']);\n * const f = Identity.of(['f']);\n * e.concat(f); //=> ['e', 'f']\n */\n\n }, {\n key: _concat,\n value: function value(semigroup) {\n return _traits.semigroupTrait[_concat].call(this, semigroup);\n }\n }, {\n key: \"concat\",\n value: function concat(semigroup) {\n return this[_concat](semigroup);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#chain|Chain} specification.\n *\n * @sig chain :: Chain m => m a ~> (a -> m b) -> m b\n * @param {Function} fn Function returning the value of the same {@link https://github.com/fantasyland/fantasy-land#semigroup|Chain}\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of(1);\n * const fn = val => Identity.of(val + 1);\n *\n * a.chain(fn).chain(fn); //=> Identity(3)\n */\n\n }, {\n key: _chain,\n value: function value(fn) {\n return _traits.chainTrait[_chain].call(this, fn);\n }\n }, {\n key: \"chain\",\n value: function chain(fn) {\n return this[_chain](fn);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#ord|Ord} specification.\n *\n * @sig lte :: Ord a => a ~> a -> Boolean\n * @param {RA.Identity} ord\n * @return {boolean}\n * @example\n *\n * const a = Identity.of(1);\n * const b = Identity.of(1);\n * const c = Identity.of(2);\n *\n * a.lte(b); //=> true\n * a.lte(c); //=> true\n * c.lte(a); //=> false\n */\n\n }, {\n key: _lte,\n value: function value(ord) {\n return _traits.ordTrait[_lte].call(this, ord);\n }\n }, {\n key: \"lte\",\n value: function lte(ord) {\n return this[_lte](ord);\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#monoid|Monoid*} specification.\n * Partial implementation of Monoid specification. `empty` method on instance only, returning\n * identity value of the wrapped type. Using `R.empty` under the hood.\n *\n *\n * @sig empty :: Monoid m => () -> m\n * @return {RA.Identity}\n * @example\n *\n * const a = Identity.of('test');\n * const i = a.empty();\n *\n * a.concat(i); //=> Identity('string');\n * i.concat(a); //=> Identity('string');\n */\n\n }, {\n key: _empty,\n value: function value() {\n return this.constructor.of((0, _ramda.empty)(this.value));\n }\n }, {\n key: \"empty\",\n value: function empty() {\n return this[_empty]();\n }\n /**\n * Fantasy land {@link https://github.com/fantasyland/fantasy-land#contravariant|Contravariant} specification.\n *\n * @sig contramap :: Contravariant f => f a ~> (b -> a) -> f b\n * @param {Function} fn\n * @return {RA.Identity}\n * @example\n *\n * const identity = a => a;\n * const add1 = a => a + 1;\n * const divide2 = a => a / 2;\n *\n * Identity.of(divide2).contramap(add1).get()(3); //=> 2\n * Identity.of(identity).contramap(divide2).contramap(add1).get()(3); //=> 2\n * Identity.of(identity).contramap(a => divide2(add1(a))).get()(3); //=> 2\n */\n\n }, {\n key: _contramap,\n value: function value(fn) {\n var _this = this;\n\n return this.constructor.of(function (value) {\n return _this.value(fn(value));\n });\n }\n }, {\n key: \"contramap\",\n value: function contramap(fn) {\n return this[_contramap](fn);\n }\n }]);\n\n return Identity;\n}();\n\nvar _default = Identity;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar mapping = Object.freeze({\n equals: 'fantasy-land/equals',\n lte: 'fantasy-land/lte',\n compose: 'fantasy-land/compose',\n id: 'fantasy-land/id',\n concat: 'fantasy-land/concat',\n empty: 'fantasy-land/empty',\n map: 'fantasy-land/map',\n contramap: 'fantasy-land/contramap',\n ap: 'fantasy-land/ap',\n of: 'fantasy-land/of',\n alt: 'fantasy-land/alt',\n zero: 'fantasy-land/zero',\n reduce: 'fantasy-land/reduce',\n traverse: 'fantasy-land/traverse',\n chain: 'fantasy-land/chain',\n chainRec: 'fantasy-land/chainRec',\n extend: 'fantasy-land/extend',\n extract: 'fantasy-land/extract',\n bimap: 'fantasy-land/bimap',\n promap: 'fantasy-land/promap'\n});\nvar _default = mapping;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.ordTrait = exports.chainTrait = exports.semigroupTrait = exports.setoidTrait = exports.applyTrait = exports.functorTrait = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isString = _interopRequireDefault(require(\"../isString\"));\n\nvar _isNumber = _interopRequireDefault(require(\"../isNumber\"));\n\nvar _isFunction = _interopRequireDefault(require(\"../isFunction\"));\n\nvar _util = require(\"./util\");\n\nvar _mapping = _interopRequireDefault(require(\"./mapping\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar functorTrait = _defineProperty({}, _mapping[\"default\"].map, function (fn) {\n return this.constructor[_mapping[\"default\"].of](fn(this.value));\n});\n\nexports.functorTrait = functorTrait;\n\nvar applyTrait = _defineProperty({}, _mapping[\"default\"].ap, function (applyWithFn) {\n var _this = this;\n\n return applyWithFn.map(function (fn) {\n return fn(_this.value);\n });\n});\n\nexports.applyTrait = applyTrait;\n\nvar setoidTrait = _defineProperty({}, _mapping[\"default\"].equals, function (setoid) {\n return (0, _util.isSameType)(this, setoid) && (0, _ramda.equals)(this.value, setoid.value);\n});\n\nexports.setoidTrait = setoidTrait;\n\nvar semigroupTrait = _defineProperty({}, _mapping[\"default\"].concat, function (semigroup) {\n var concatenatedValue = this.value;\n\n if ((0, _isString[\"default\"])(this.value) || (0, _isNumber[\"default\"])(this.value)) {\n concatenatedValue = this.value + semigroup.value;\n } else if ((0, _ramda.pathSatisfies)(_isFunction[\"default\"], ['value', _mapping[\"default\"].concat], this)) {\n concatenatedValue = this.value[_mapping[\"default\"].concat](semigroup.value);\n } else if ((0, _ramda.pathSatisfies)(_isFunction[\"default\"], ['value', 'concat'], this)) {\n concatenatedValue = this.value.concat(semigroup.value);\n }\n\n return this.constructor[_mapping[\"default\"].of](concatenatedValue);\n});\n\nexports.semigroupTrait = semigroupTrait;\n\nvar chainTrait = _defineProperty({}, _mapping[\"default\"].chain, function (fn) {\n var newChain = fn(this.value);\n return (0, _util.isSameType)(this, newChain) ? newChain : this;\n});\n\nexports.chainTrait = chainTrait;\n\nvar ordTrait = _defineProperty({}, _mapping[\"default\"].lte, function (ord) {\n return (0, _util.isSameType)(this, ord) && (this.value < ord.value || this[_mapping[\"default\"].equals](ord));\n});\n\nexports.ordTrait = ordTrait;","\"use strict\";\n\nexports.__esModule = true;\nexports.isNotSameType = exports.isSameType = exports.typeEquals = exports.type = void 0;\n\nvar _ramda = require(\"ramda\");\n\n// type :: Monad a => a -> String\nvar type = (0, _ramda.either)((0, _ramda.path)(['@@type']), (0, _ramda.path)(['constructor', '@@type'])); // typeEquals :: Monad a => String -> a -> Boolean\n\nexports.type = type;\nvar typeEquals = (0, _ramda.curry)(function (typeIdent, monad) {\n return type(monad) === typeIdent;\n}); // isSameType :: (Monad a, Monad b) => a -> b -> Boolean\n\nexports.typeEquals = typeEquals;\nvar isSameType = (0, _ramda.curryN)(2, (0, _ramda.useWith)(_ramda.equals, [type, type])); // isNotSameType :: (Monad a, Monad b) => a -> b -> Boolean\n\nexports.isSameType = isSameType;\nvar isNotSameType = (0, _ramda.complement)(isSameType);\nexports.isNotSameType = isNotSameType;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _makeFlat2 = _interopRequireDefault(require(\"ramda/src/internal/_makeFlat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar flatten1 = (0, _makeFlat2[\"default\"])(false);\n/**\n * Flattens the list to the specified depth.\n *\n * @func flattenDepth\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.19.0|v2.19.0}\n * @category List\n * @sig Number -> [a] -> [b]\n * @param {!number} depth The maximum recursion depth\n * @param {!Array} list The array to flatten\n * @return {!Array} Returns the new flattened array\n * @see {@link http://ramdajs.com/docs/#flatten|R.flatten}, {@link http://ramdajs.com/docs/#unnest|R.unnest}\n * @example\n *\n * RA.flattenDepth(\n * 2,\n * [1, [2], [3, [4, 5], 6, [[[7], 8]]], 9, 10]\n * ); //=> [1, 2, 3, 4, 5, 6, [[7], 8], 9, 10];\n */\n\nvar flattenDepth = (0, _ramda.curry)(function (depth, list) {\n var currentDept = depth;\n\n var flatList = _toConsumableArray(list);\n\n while (currentDept > 0) {\n flatList = flatten1(flatList);\n currentDept -= 1;\n }\n\n return flatList;\n});\nvar _default = flattenDepth;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Flattens a property path so that its fields are spread out into the provided object.\n * It's like {@link RA.spreadPath|spreadPath}, but preserves object under the property path.\n *\n * @func flattenPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!Array.<string|number>} path The property path to flatten\n * @param {!Object} obj The provided object\n * @return {!Object} The flattened object\n * @see {@link RA.flattenProp|flattenProp}, {@link RA.spreadPath|spreadPath}\n * @example\n *\n * RA.flattenPath(\n * ['b1', 'b2'],\n * { a: 1, b1: { b2: { c: 3, d: 4 } } }\n * ); // => { a: 1, c: 3, d: 4, b1: { b2: { c: 3, d: 4 } } };\n */\nvar flattenPath = (0, _ramda.curry)(function (path, obj) {\n return (0, _ramda.merge)(obj, (0, _ramda.pathOr)({}, path, obj));\n});\nvar _default = flattenPath;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _flattenPath = _interopRequireDefault(require(\"./flattenPath\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Flattens a property so that its fields are spread out into the provided object.\n * It's like {@link RA.spreadProp|spreadProp}, but preserves object under the property path.\n *\n * @func flattenProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!string|number} prop The property to flatten\n * @param {!Object} obj The provided object\n * @return {!Object} The flattened object\n * @see {@link RA.flattenPath|flattenPath}, {@link RA.spreadProp|spreadProp}\n * @example\n *\n * RA.flattenProp(\n * 'b',\n * { a: 1, b: { c: 3, d: 4 } }\n * ); // => { a: 1, c: 3, d: 4, b: { c: 3, d: 4 } };\n */\nvar flattenProp = (0, _ramda.curry)(function (prop, obj) {\n return (0, _flattenPath[\"default\"])((0, _ramda.of)(prop), obj);\n});\nvar _default = flattenProp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns the largest integer less than or equal to a given number.\n *\n * Note: floor(null) returns integer 0 and do not give a NaN error.\n *\n * @func floor\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to floor\n * @return {number} A number representing the largest integer less than or equal to the specified number\n * @example\n *\n * RA.floor(45.95); //=> 45\n * RA.floor(45.05); //=> 45\n * RA.floor(4); //=> 4\n * RA.floor(-45.05); //=> -46\n * RA.floor(-45.95); //=> -46\n * RA.floor(null); //=> 0\n */\nvar floor = (0, _curry[\"default\"])((0, _ramda.bind)(Math.floor, Math));\nvar _default = floor;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isObj = _interopRequireDefault(require(\"./isObj\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns whether or not an object has an own property with the specified name at a given path.\n *\n * @func hasPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @deprecated since v2.12.0; ramda@0.26.0 contains hasPath\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array.<string|number>} path The path of the nested property\n * @param {Object} obj The object to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#has|R.has}\n * @example\n *\n * RA.hasPath(['a', 'b'], { a: { b: 1 } }); //=> true\n * RA.hasPath(['a', 'b', 'c'], { a: { b: 1 } }); //=> false\n * RA.hasPath(['a', 'b'], { a: { } }); //=> false\n * RA.hasPath([0], [1, 2]); //=> true\n */\nvar hasPath = (0, _ramda.curryN)(2, function (objPath, obj) {\n var prop = (0, _ramda.head)(objPath); // termination conditions\n\n if ((0, _ramda.length)(objPath) === 0 || !(0, _isObj[\"default\"])(obj)) {\n return false;\n }\n\n if ((0, _ramda.length)(objPath) === 1) {\n return (0, _ramda.has)(prop, obj);\n }\n\n return hasPath((0, _ramda.tail)(objPath), (0, _ramda.path)([prop], obj)); // base case\n});\nvar _default = hasPath;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar inRangeImp = (0, _ramda.ifElse)(_ramda.gte, function () {\n throw new Error('low must not be greater than high in inRange(low, high, value)');\n}, (0, _ramda.useWith)(_ramda.both, [_ramda.lte, _ramda.gt]));\n/**\n * Checks if `value` is between `low` and up to but not including `high`.\n *\n * @func inRange\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|v2.7.0}\n * @category Relation\n * @sig Number -> Number -> Number -> Boolean\n * @param {Number} low Start of the range\n * @param {Number} high The end of the range\n * @param {Number} value The value to test\n * @return {boolean}\n * @throws {Error} When `low` is greater than or equal to `high`\n * @example\n *\n * RA.inRange(0, 5, 3); //=> true\n * RA.inRange(0, 5, 0); //=> true\n * RA.inRange(0, 5, 4); //=> true\n * RA.inRange(0, 5, 5); //=> false\n * RA.inRange(0, 5, -1); //=> false\n */\n\nvar _default = (0, _ramda.curry)(function (low, high, value) {\n return inRangeImp(low, high)(value);\n});\n\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"../isFunction\"));\n\nvar _mapping = _interopRequireDefault(require(\"../fantasy-land/mapping\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isFunctor = (0, _ramda.either)((0, _ramda.pathSatisfies)(_isFunction[\"default\"], ['map']), (0, _ramda.pathSatisfies)(_isFunction[\"default\"], [_mapping[\"default\"].map]));\nvar isApply = (0, _ramda.both)(isFunctor, (0, _ramda.either)((0, _ramda.pathSatisfies)(_isFunction[\"default\"], ['ap']), (0, _ramda.pathSatisfies)(_isFunction[\"default\"], [_mapping[\"default\"].ap])));\nvar ap = (0, _ramda.curryN)(2, function (applyF, applyX) {\n // return original ramda `ap` if not Apply spec\n if (!isApply(applyF) || !isApply(applyX)) {\n return (0, _ramda.ap)(applyF, applyX);\n }\n\n try {\n // new version of `ap` starting from ramda version > 0.23.0\n return applyF.ap(applyX);\n } catch (e) {\n // old version of `ap` till ramda version <= 0.23.0\n return applyX.ap(applyF);\n }\n});\nvar _default = ap;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar compareLength = (0, _ramda.curry)(function (comparator, value, list) {\n return (0, _ramda.compose)(comparator(value), _ramda.length)(list);\n});\nvar _default = compareLength;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar isOfTypeObject = function isOfTypeObject(val) {\n return _typeof(val) === 'object';\n};\n\nvar _default = isOfTypeObject;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isIterable = _interopRequireDefault(require(\"../../isIterable\"));\n\nvar _isNotUndefined = _interopRequireDefault(require(\"../../isNotUndefined\"));\n\nvar _isNotNil = _interopRequireDefault(require(\"../../isNotNil\"));\n\nvar _isNotFunction = _interopRequireDefault(require(\"../../isNotFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar copyArray = function copyArray(items, mapFn, thisArg) {\n var boundMapFn = (0, _isNotUndefined[\"default\"])(thisArg) ? (0, _ramda.bind)(mapFn, thisArg) : mapFn;\n return (0, _isNotUndefined[\"default\"])(mapFn) ? _toConsumableArray(items).map(boundMapFn) : _toConsumableArray(items);\n};\n\nvar fromArray = function fromArray(items, mapFn, thisArg) {\n if (items == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n\n if ((0, _isNotNil[\"default\"])(mapFn) && (0, _isNotFunction[\"default\"])(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n if ((0, _isIterable[\"default\"])(items)) {\n return copyArray(items, mapFn, thisArg);\n }\n\n return [];\n};\n\nvar _default = fromArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar signPolyfill = function signPolyfill(number) {\n return (number > 0) - (number < 0) || +number;\n};\n\nvar _default = signPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isFinite = _interopRequireDefault(require(\"../../isFinite\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar truncPolyfill = function truncPolyfill(v) {\n var numV = Number(v);\n\n if (!(0, _isFinite[\"default\"])(numV)) {\n return numV;\n } // eslint-disable-next-line no-nested-ternary\n\n\n return numV - numV % 1 || (numV < 0 ? -0 : numV === 0 ? numV : 0);\n};\n\nvar _default = truncPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;\nvar _default = MAX_SAFE_INTEGER;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNumber = _interopRequireDefault(require(\"../../isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// eslint-disable-next-line no-restricted-globals\nvar isFinitePolyfill = (0, _ramda.both)(_isNumber[\"default\"], isFinite);\nvar _default = isFinitePolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFinite = _interopRequireDefault(require(\"../../isFinite\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isIntegerPolyfill = (0, _ramda.both)(_isFinite[\"default\"], (0, _ramda.converge)(_ramda.equals, [Math.floor, _ramda.identity]));\nvar _default = isIntegerPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNumber = _interopRequireDefault(require(\"../../isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// eslint-disable-next-line no-restricted-globals\nvar isNaNPolyfill = (0, _ramda.both)(_isNumber[\"default\"], isNaN);\nvar _default = isNaNPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isInteger = _interopRequireDefault(require(\"../../isInteger\"));\n\nvar _Number = _interopRequireDefault(require(\"./Number.MAX_SAFE_INTEGER\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isSafeIntegerPolyfill = (0, _ramda.both)(_isInteger[\"default\"], function (value) {\n return Math.abs(value) <= _Number[\"default\"];\n});\nvar _default = isSafeIntegerPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _allP = _interopRequireDefault(require(\"../../allP\"));\n\nvar _resolveP = _interopRequireDefault(require(\"../../resolveP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nvar onFulfill = function onFulfill(value) {\n return {\n status: 'fulfilled',\n value: value\n };\n};\n\nvar onReject = function onReject(reason) {\n return {\n status: 'rejected',\n reason: reason\n };\n};\n\nvar allSettledPolyfill = function allSettledPolyfill(iterable) {\n var array = (0, _ramda.map)(function (p) {\n return (0, _resolveP[\"default\"])(p).then(onFulfill)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n return (0, _allP[\"default\"])(array);\n};\n\nvar _default = allSettledPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.AggregatedError = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _resolveP = _interopRequireDefault(require(\"../../resolveP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar AggregatedError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AggregatedError, _Error);\n\n function AggregatedError() {\n var _this;\n\n var errors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var message = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, AggregatedError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AggregatedError).call(this, message));\n _this.errors = errors;\n return _this;\n }\n\n return AggregatedError;\n}(_wrapNativeSuper(Error));\n\nexports.AggregatedError = AggregatedError;\n\nvar anyPolyfill = function anyPolyfill(iterable) {\n var exceptions = [];\n return new Promise(function (resolve, reject) {\n var onReject = function onReject(e) {\n exceptions.push(e);\n\n if (exceptions.length === iterable.length) {\n reject(new AggregatedError(exceptions));\n }\n };\n\n (0, _ramda.map)(function (p) {\n return (0, _resolveP[\"default\"])(p).then(resolve)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n });\n};\n\nvar _default = anyPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isFunction = _interopRequireDefault(require(\"../../isFunction\"));\n\nvar _isNotUndefined = _interopRequireDefault(require(\"../../isNotUndefined\"));\n\nvar _String = _interopRequireDefault(require(\"./String.repeat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar padEndPolyfill = function padEndPolyfill(padString, targetLength, value) {\n // eslint-disable-next-line no-bitwise\n var finalLength = targetLength >> 0;\n var finalPadString = String((0, _isNotUndefined[\"default\"])(padString) ? padString : ' ');\n\n if (value.length > finalLength) {\n return String(value);\n }\n\n finalLength -= value.length;\n\n if (finalLength > finalPadString.length) {\n var remainingLength = finalLength / finalPadString.length;\n finalPadString += (0, _isFunction[\"default\"])(String.prototype.repeat) ? finalPadString.repeat(remainingLength) : (0, _String[\"default\"])(finalPadString, remainingLength);\n }\n\n return String(value) + finalPadString.slice(0, finalLength);\n};\n\nvar _default = padEndPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isFunction = _interopRequireDefault(require(\"../../isFunction\"));\n\nvar _isNotUndefined = _interopRequireDefault(require(\"../../isNotUndefined\"));\n\nvar _String = _interopRequireDefault(require(\"./String.repeat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar padStartPolyfill = function padStartPolyfill(padString, targetLength, value) {\n // eslint-disable-next-line no-bitwise\n var finalLength = targetLength >> 0; // truncate if number, or convert non-number to 0;\n\n var finalPadString = String((0, _isNotUndefined[\"default\"])(padString) ? padString : ' '); // return the original string, if targeted length is less than original strings length\n\n if (value.length >= finalLength) {\n return String(value);\n }\n\n finalLength -= value.length;\n\n if (finalLength > finalPadString.length) {\n var lenghtToPad = finalLength / finalPadString.length; // append to original to ensure we are longer than needed\n\n finalPadString += (0, _isFunction[\"default\"])(String.prototype.repeat) ? finalPadString.repeat(lenghtToPad) : (0, _String[\"default\"])(finalPadString, lenghtToPad);\n }\n\n return finalPadString.slice(0, finalLength) + String(value);\n};\n\nvar _default = padStartPolyfill;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isNotFinite = _interopRequireDefault(require(\"../../isNotFinite\"));\n\nvar _isNegative = _interopRequireDefault(require(\"../../isNegative\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar repeat = function repeat(value, count) {\n var validCount = Number(count);\n\n if (validCount !== count) {\n validCount = 0;\n }\n\n if ((0, _isNegative[\"default\"])(validCount)) {\n throw new RangeError('repeat count must be non-negative');\n }\n\n if ((0, _isNotFinite[\"default\"])(validCount)) {\n throw new RangeError('repeat count must be less than infinity');\n }\n\n validCount = Math.floor(validCount);\n\n if (value.length === 0 || validCount === 0) {\n return '';\n } // Ensuring validCount is a 31-bit integer allows us to heavily optimize the\n // main part. But anyway, most current (August 2014) browsers can't handle\n // strings 1 << 28 chars or longer, so:\n // eslint-disable-next-line no-bitwise\n\n\n if (value.length * validCount >= 1 << 28) {\n throw new RangeError('repeat count must not overflow maximum string size');\n }\n\n var maxCount = value.length * validCount;\n validCount = Math.floor(Math.log(validCount) / Math.log(2));\n var result = value;\n\n while (validCount) {\n result += value;\n validCount -= 1;\n }\n\n result += result.substring(0, maxCount - result.length);\n return result;\n};\n\nvar _default = repeat;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar checkArguments = function checkArguments(searchValue, replaceValue, str) {\n if (str == null || searchValue == null || replaceValue == null) {\n throw TypeError('Input values must not be `null` or `undefined`');\n }\n};\n\nvar checkValue = function checkValue(value, valueName) {\n if (typeof value !== 'string') {\n if (!(value instanceof String)) {\n throw TypeError(\"`\".concat(valueName, \"` must be a string\"));\n }\n }\n};\n\nvar checkSearchValue = function checkSearchValue(searchValue) {\n if (typeof searchValue !== 'string' && !(searchValue instanceof String) && !(searchValue instanceof RegExp)) {\n throw TypeError('`searchValue` must be a string or an regexp');\n }\n};\n\nvar returnResult = function returnResult(searchValue, replaceValue, str) {\n // searchValue is an empty string\n if (searchValue === '') return str.replace(/(?:)/g, replaceValue); // searchValue is a global regexp\n\n if (searchValue instanceof RegExp) {\n if (searchValue.flags.indexOf('g') === -1) {\n throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n\n return str.replace(searchValue, replaceValue);\n } // common case\n\n\n return str.split(searchValue).join(replaceValue);\n};\n\nvar replaceAll = function replaceAll(searchValue, replaceValue, str) {\n checkArguments(searchValue, replaceValue, str);\n checkValue(str, 'str');\n checkValue(replaceValue, 'replaceValue');\n checkSearchValue(searchValue);\n return returnResult(searchValue, replaceValue, str);\n};\n\nvar _default = replaceAll;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar trimStart = (0, _ramda.replace)(/[\\s\\uFEFF\\xA0]+$/, '');\nvar _default = trimStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar trimStart = (0, _ramda.replace)(/^[\\s\\uFEFF\\xA0]+/, '');\nvar _default = trimStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isArray2 = _interopRequireDefault(require(\"ramda/src/internal/_isArray\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `Array`.\n *\n * @func isArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotArray|isNotArray}\n * @example\n *\n * RA.isArray([]); //=> true\n * RA.isArray(null); //=> false\n * RA.isArray({}); //=> false\n */\nvar isArray = (0, _curry[\"default\"])((0, _isFunction[\"default\"])(Array.isArray) ? Array.isArray : _isArray2[\"default\"]);\nvar _default = isArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nvar _isString = _interopRequireDefault(require(\"./isString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/* eslint-disable max-len */\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @func isArrayLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.9.0|v1.9.0}\n * @licence https://github.com/ramda/ramda/blob/master/LICENSE.txt\n * @category List\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @returns {boolean} `true` if `val` has a numeric length property and extreme indices defined; `false` otherwise.\n * @see {@link RA.isNotArrayLike|isNotArrayLike}\n\n * @example\n *\n * RA.isArrayLike([]); //=> true\n * RA.isArrayLike(true); //=> false\n * RA.isArrayLike({}); //=> false\n * RA.isArrayLike({length: 10}); //=> false\n * RA.isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n/* eslint-enable max-len */\nvar isArrayLike = (0, _curry[\"default\"])(function (val) {\n if ((0, _isArray[\"default\"])(val)) {\n return true;\n }\n\n if (!val) {\n return false;\n }\n\n if ((0, _isString[\"default\"])(val)) {\n return false;\n }\n\n if (_typeof(val) !== 'object') {\n return false;\n }\n\n if (val.nodeType === 1) {\n return !!val.length;\n }\n\n if (val.length === 0) {\n return true;\n }\n\n if (val.length > 0) {\n return (0, _ramda.has)(0, val) && (0, _ramda.has)(val.length - 1, val);\n }\n\n return false;\n});\nvar _default = isArrayLike;\n/**\n The MIT License (MIT)\n\n Copyright (c) 2013-2016 Scott Sauyet and Michael Hurley\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\n\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `Async Function`.\n *\n * @func isAsyncFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isNotAsyncFunction|isNotAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isAsyncFunction(async function test() { }); //=> true\n * RA.isAsyncFunction(null); //=> false\n * RA.isAsyncFunction(function test() { }); //=> false\n * RA.isAsyncFunction(() => {}); //=> false\n */\nvar isAsyncFunction = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('AsyncFunction')));\nvar _default = isAsyncFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `Boolean`.\n *\n * @func isBoolean\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotBoolean|isNotBoolean}\n * @example\n *\n * RA.isBoolean(false); //=> true\n * RA.isBoolean(true); //=> true\n * RA.isBoolean(null); //=> false\n */\nvar isBoolean = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('Boolean')));\nvar _default = isBoolean;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is `Date` object.\n *\n * @func isDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotDate|isNotDate}, {@link RA.isValidDate|isValidDate}, {@link RA.isNotValidDate|isNotValidDate}\n * @example\n *\n * RA.isDate(new Date()); //=> true\n * RA.isDate('1997-07-16T19:20+01:00'); //=> false\n */\nvar isDate = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('Date')));\nvar _default = isDate;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is an empty `Array`.\n *\n * @func isEmptyArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotEmptyArray|isNotEmptyArray}\n * @example\n *\n * RA.isEmptyArray([]); // => true\n * RA.isEmptyArray([42]); // => false\n * RA.isEmptyArray({}); // => false\n * RA.isEmptyArray(null); // => false\n * RA.isEmptyArray(undefined); // => false\n * RA.isEmptyArray(42); // => false\n * RA.isEmptyArray('42'); // => false\n */\nvar isEmptyArray = (0, _ramda.both)(_isArray[\"default\"], _ramda.isEmpty);\nvar _default = isEmptyArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if input value is an empty `String`.\n *\n * @func isEmptyString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotEmptyString|isNotEmptyString}\n * @example\n *\n * RA.isEmptyString(''); // => true\n * RA.isEmptyString('42'); // => false\n * RA.isEmptyString(new String('42')); // => false\n * RA.isEmptyString(new String('')); // => false\n * RA.isEmptyString([42]); // => false\n * RA.isEmptyString({}); // => false\n * RA.isEmptyString(null); // => false\n * RA.isEmptyString(undefined); // => false\n * RA.isEmptyString(42); // => false\n */\nvar isEmptyString = (0, _ramda.equals)('');\nvar _default = isEmptyString;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nvar _isOdd = _interopRequireDefault(require(\"./isOdd\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is even integer number.\n * An even number is an integer which is \"evenly divisible\" by two.\n * Zero is an even number because zero divided by two equals zero,\n * which despite not being a natural number, is an integer.\n * Even numbers are either positive or negative.\n *\n * @func isEven\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isOdd|isOdd}\n * @example\n *\n * RA.isEven(0); // => true\n * RA.isEven(1); // => false\n * RA.isEven(-Infinity); // => false\n * RA.isEven(4); // => true\n * RA.isEven(3); // => false\n */\nvar isEven = (0, _curry[\"default\"])((0, _ramda.both)(_isInteger[\"default\"], (0, _ramda.complement)(_isOdd[\"default\"])));\nvar _default = isEven;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if input value is the Boolean primitive `false`. Will return false for all values created\n * using the `Boolean` function as a constructor.\n *\n * @func isFalse\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isTrue|isTrue}, {@link RA.isTruthy|isTruthy}, {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.isFalse(false); // => true\n * RA.isFalse(Boolean(false)); // => true\n * RA.isFalse(true); // => false\n * RA.isFalse(0); // => false\n * RA.isFalse(''); // => false\n * RA.isFalse(null); // => false\n * RA.isFalse(undefined); // => false\n * RA.isFalse(NaN); // => false\n * RA.isFalse([]); // => false\n * RA.isFalse(new Boolean(false)); // => false\n */\nvar isFalse = (0, _ramda.identical)(false);\nvar _default = isFalse;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isTruthy = _interopRequireDefault(require(\"./isTruthy\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * A falsy value is a value that translates to false when evaluated in a Boolean context.\n * Falsy values are `false`, `0`, `\"\"`, `null`, `undefined`, and `NaN`.\n *\n * @func isFalsy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2..0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Falsy|falsy}, {@link RA.isTruthy|isTruthy}\n * @example\n *\n * RA.isFalsy(false); // => true\n * RA.isFalsy(0); // => true\n * RA.isFalsy(''); // => true\n * RA.isFalsy(null); // => true\n * RA.isFalsy(undefined); // => true\n * RA.isFalsy(NaN); // => true\n */\nvar isFalsy = (0, _ramda.complement)(_isTruthy[\"default\"]);\nvar _default = isFalsy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.isFinitePolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Number = _interopRequireDefault(require(\"./internal/polyfills/Number.isFinite\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isFinitePolyfill = (0, _curry[\"default\"])(_Number[\"default\"]);\n/**\n * Checks whether the passed value is a finite `Number`.\n *\n * @func isFinite\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotFinite|isNotFinite}\n * @example\n *\n * RA.isFinite(Infinity); //=> false\n * RA.isFinite(NaN); //=> false\n * RA.isFinite(-Infinity); //=> false\n *\n * RA.isFinite(0); // true\n * RA.isFinite(2e64); // true\n *\n * RA.isFinite('0'); // => false\n * // would've been true with global isFinite('0')\n * RA.isFinite(null); // => false\n * // would've been true with global isFinite(null)\n */\n\nexports.isFinitePolyfill = isFinitePolyfill;\n\nvar _isFinite = (0, _isFunction[\"default\"])(Number.isFinite) ? (0, _curry[\"default\"])((0, _ramda.bind)(Number.isFinite, Number)) : isFinitePolyfill;\n\nvar _default = _isFinite;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nvar _isFinite = _interopRequireDefault(require(\"./isFinite\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is a `float`.\n *\n * @func isFloat\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotFloat|isNotFloat}\n * @example\n *\n * RA.isFloat(0); //=> false\n * RA.isFloat(1); //=> false\n * RA.isFloat(-100000); //=> false\n *\n * RA.isFloat(0.1); //=> true\n * RA.isFloat(Math.PI); //=> true\n *\n * RA.isFloat(NaN); //=> false\n * RA.isFloat(Infinity); //=> false\n * RA.isFloat(-Infinity); //=> false\n * RA.isFloat('10'); //=> false\n * RA.isFloat(true); //=> false\n * RA.isFloat(false); //=> false\n * RA.isFloat([1]); //=> false\n */\nvar isFloat = (0, _ramda.both)(_isFinite[\"default\"], (0, _ramda.complement)(_isInteger[\"default\"]));\nvar _default = isFloat;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isGeneratorFunction = _interopRequireDefault(require(\"./isGeneratorFunction\"));\n\nvar _isAsyncFunction = _interopRequireDefault(require(\"./isAsyncFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `Function`.\n *\n * @func isFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotFunction|isNotFunction}, {@link RA.isAsyncFunction|isNotAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isFunction(function test() { }); //=> true\n * RA.isFunction(function* test() { }); //=> true\n * RA.isFunction(async function test() { }); //=> true\n * RA.isFunction(() => {}); //=> true\n * RA.isFunction(null); //=> false\n * RA.isFunction('abc'); //=> false\n */\nvar isFunction = (0, _ramda.anyPass)([(0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('Function')), _isGeneratorFunction[\"default\"], _isAsyncFunction[\"default\"]]);\nvar _default = isFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _ramda = require(\"ramda\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar GeneratorFunction = null;\nvar legacyCheck = null;\n\ntry {\n GeneratorFunction = new Function('return function* () {}')().constructor; // eslint-disable-line no-new-func\n\n legacyCheck = (0, _ramda.is)(GeneratorFunction);\n} catch (e) {\n legacyCheck = _ramda.F;\n}\n/**\n * Checks if input value is `Generator Function`.\n *\n * @func isGeneratorFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isAsyncFunction}, {@link RA.isNotGeneratorFunction|isNotGeneratorFunction}\n * @example\n *\n * RA.isGeneratorFunction(function* test() { }); //=> true\n * RA.isGeneratorFunction(null); //=> false\n * RA.isGeneratorFunction(function test() { }); //=> false\n * RA.isGeneratorFunction(() => {}); //=> false\n */\n\n\nvar isGeneratorFunction = (0, _curry[\"default\"])((0, _ramda.either)((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('GeneratorFunction')), legacyCheck));\nvar _default = isGeneratorFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.isIntegerPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Number = _interopRequireDefault(require(\"./internal/polyfills/Number.isInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isIntegerPolyfill = (0, _curry[\"default\"])(_Number[\"default\"]);\n/**\n * Checks whether the passed value is an `integer`.\n *\n * @func isInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotInteger|isNotInteger}\n * @example\n *\n * RA.isInteger(0); //=> true\n * RA.isInteger(1); //=> true\n * RA.isInteger(-100000); //=> true\n *\n * RA.isInteger(0.1); //=> false\n * RA.isInteger(Math.PI); //=> false\n *\n * RA.isInteger(NaN); //=> false\n * RA.isInteger(Infinity); //=> false\n * RA.isInteger(-Infinity); //=> false\n * RA.isInteger('10'); //=> false\n * RA.isInteger(true); //=> false\n * RA.isInteger(false); //=> false\n * RA.isInteger([1]); //=> false\n */\n\nexports.isIntegerPolyfill = isIntegerPolyfill;\nvar isInteger = (0, _isFunction[\"default\"])(Number.isInteger) ? (0, _curry[\"default\"])((0, _ramda.bind)(Number.isInteger, Number)) : isIntegerPolyfill;\nvar _default = isInteger;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is iterable.\n *\n * @func isIterable\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol}\n * @return {boolean}\n * @example\n *\n * RA.isIterable(['arrays', 'are', 'iterable']); //=> true\n * RA.isIterable('strings are iterable, too'); //=> true\n * RA.isIterable((function* () {})()); //=> true (generator objects are both iterable and iterators)\n *\n * RA.isIterable({}); //=> false\n * RA.isIterable(-0); //=> false\n * RA.isIterable(null); //=> false\n * RA.isIterable(undefined); //=> false\n */\nvar isIterable = (0, _curry[\"default\"])(function (val) {\n if (typeof Symbol === 'undefined') {\n return false;\n }\n\n return (0, _ramda.hasIn)(Symbol.iterator, Object(val)) && (0, _isFunction[\"default\"])(val[Symbol.iterator]);\n});\nvar _default = isIterable;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Predicate for determining if a provided value is an instance of a Map.\n *\n * @func isMap\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isSet|isSet}}\n * @example\n *\n * RA.isMap(new Map()); //=> true\n * RA.isMap(new Map([[1, 2], [2, 1]])); //=> true\n * RA.isSet(new Set()); //=> false\n * RA.isSet(new Set([1,2]); //=> false\n * RA.isSet(new Object()); //=> false\n */\nvar isMap = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('Map')));\nvar _default = isMap;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.isNaNPolyfill = void 0;\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Number = _interopRequireDefault(require(\"./internal/polyfills/Number.isNaN\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isNaNPolyfill = (0, _curry[\"default\"])(_Number[\"default\"]);\n/**\n * Checks whether the passed value is `NaN` and its type is `Number`.\n * It is a more robust version of the original, global isNaN().\n *\n *\n * @func isNaN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNaN|isNotNaN}\n * @example\n *\n * RA.isNaN(NaN); // => true\n * RA.isNaN(Number.NaN); // => true\n * RA.isNaN(0 / 0); // => true\n *\n * // e.g. these would have been true with global isNaN().\n * RA.isNaN('NaN'); // => false\n * RA.isNaN(undefined); // => false\n * RA.isNaN({}); // => false\n * RA.isNaN('blabla'); // => false\n *\n * RA.isNaN(true); // => false\n * RA.isNaN(null); // => false\n * RA.isNaN(37); // => false\n * RA.isNaN('37'); // => false\n * RA.isNaN('37.37'); // => false\n * RA.isNaN(''); // => false\n * RA.isNaN(' '); // => false\n */\n\nexports.isNaNPolyfill = isNaNPolyfill;\n\nvar _isNaN = (0, _isFunction[\"default\"])(Number.isNaN) ? (0, _curry[\"default\"])(Number.isNaN) : isNaNPolyfill;\n\nvar _default = _isNaN;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNumber = _interopRequireDefault(require(\"./isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a negative `Number` primitive or object. Zero is not considered neither\n * positive or negative.\n *\n * @func isNegative\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.15.0|v1.15.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPositive|isPositive}\n * @example\n *\n * RA.isNegative(-1); // => true\n * RA.isNegative(Number.MIN_VALUE); // => false\n * RA.isNegative(+Infinity); // => false\n * RA.isNegative(NaN); // => false\n * RA.isNegative('5'); // => false\n */\nvar isNegative = (0, _curry[\"default\"])((0, _ramda.both)(_isNumber[\"default\"], (0, _ramda.gt)(0)));\nvar _default = isNegative;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if value is a negative zero (-0).\n *\n * @func isNegativeZero\n * @memberof RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see @see {@link RA.isPositiveZero|isPositiveZero}\n * @example\n *\n * RA.isNegativeZero(-0); //=> true\n * RA.isNegativeZero(+0); //=> false\n * RA.isNegativeZero(0); //=> false\n * RA.isNegativeZero(null); //=> false\n */\nvar isNegativeZero = (0, _ramda.identical)(-0);\nvar _default = isNegativeZero;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the given value is its type's empty value, `null` or `undefined`.\n *\n * @func isNilOrEmpty\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#isEmpty|R.isEmpty}, {@link http://ramdajs.com/docs/#isNil|R.isNil}\n * @example\n *\n * RA.isNilOrEmpty([1, 2, 3]); //=> false\n * RA.isNilOrEmpty([]); //=> true\n * RA.isNilOrEmpty(''); //=> true\n * RA.isNilOrEmpty(null); //=> true\n * RA.isNilOrEmpty(undefined): //=> true\n * RA.isNilOrEmpty({}); //=> true\n * RA.isNilOrEmpty({length: 0}); //=> false\n */\nvar isNilOrEmpty = (0, _curry[\"default\"])((0, _ramda.either)(_ramda.isNil, _ramda.isEmpty));\nvar _default = isNilOrEmpty;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNotEmpty = _interopRequireDefault(require(\"./isNotEmpty\"));\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is not an empty `Array`.\n *\n * @func isNonEmptyArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isEmptyArray|isEmptyArray}\n * @example\n *\n * RA.isNonEmptyArray([42]); // => true\n * RA.isNonEmptyArray([]); // => false\n * RA.isNonEmptyArray({}); // => false\n * RA.isNonEmptyArray(null); // => false\n * RA.isNonEmptyArray(undefined); // => false\n * RA.isNonEmptyArray(42); // => false\n * RA.isNonEmptyArray('42'); // => false\n */\nvar isNonEmptyArray = (0, _ramda.both)(_isArray[\"default\"], _isNotEmpty[\"default\"]);\nvar _default = isNonEmptyArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isString = _interopRequireDefault(require(\"./isString\"));\n\nvar _isNotObj = _interopRequireDefault(require(\"./isNotObj\"));\n\nvar _isNotEmpty = _interopRequireDefault(require(\"./isNotEmpty\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is not an empty `String`.\n *\n * @func isNonEmptyString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isEmptyString|isEmptyString}\n * @example\n *\n * RA.isNonEmptyString('42'); // => true\n * RA.isNonEmptyString(''); // => false\n * RA.isNonEmptyString(new String('42')); // => false\n * RA.isNonEmptyString(new String('')); // => false\n * RA.isNonEmptyString([42]); // => false\n * RA.isNonEmptyString({}); // => false\n * RA.isNonEmptyString(null); // => false\n * RA.isNonEmptyString(undefined); // => false\n * RA.isNonEmptyString(42); // => false\n */\nvar isNonEmptyString = (0, _ramda.allPass)([_isString[\"default\"], _isNotObj[\"default\"], _isNotEmpty[\"default\"]]);\nvar _default = isNonEmptyString;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNumber = _interopRequireDefault(require(\"./isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a non-negative `Number` primitive or object. This includes all positive\n * numbers and zero.\n *\n * @func isNonNegative\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPositive|isPositive}, {@link RA.isNonPositive|isNonPositive}\n * @example\n *\n * RA.isNonNegative(0); // => true\n * RA.isNonNegative(1); // => true\n * RA.isNonNegative(Infinity); // => true\n * RA.isNonNegative(Number.MAX_VALUE); // => true\n *\n * RA.isNonNegative(-Infinity); // => false\n * RA.isNonNegative(Number.MIN_VALUE); // => false\n * RA.isNonNegative(NaN); // => false\n */\nvar isNonNegative = (0, _curry[\"default\"])((0, _ramda.both)(_isNumber[\"default\"], (0, _ramda.flip)(_ramda.gte)(0)));\nvar _default = isNonNegative;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNumber = _interopRequireDefault(require(\"./isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a non-positive `Number` primitive or object. This includes all negative\n * numbers and zero.\n *\n * @func isNonPositive\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegative|isNegative}, {@link RA.isNonNegative|isNonNegative}\n * @example\n *\n * RA.isNonPositive(0); // => true\n * RA.isNonPositive(-1); // => true\n * RA.isNonPositive(-Infinity); // => true\n * RA.isNonPositive(Number.MIN_VALUE); // => true\n *\n * RA.isNonPositive(Infinity); // => false\n * RA.isNonPositive(Number.MAX_VALUE); // => false\n * RA.isNonPositive(NaN); // => false\n */\nvar isNonPositive = (0, _curry[\"default\"])((0, _ramda.both)(_isNumber[\"default\"], (0, _ramda.flip)(_ramda.lte)(0)));\nvar _default = isNonPositive;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement of `Array`\n *\n * @func isNotArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isArray|isArray}\n * @example\n *\n * RA.isNotArray([]); //=> false\n * RA.isNotArray(null); //=> true\n * RA.isNotArray({}); //=> true\n */\nvar isNotArray = (0, _ramda.complement)(_isArray[\"default\"]);\nvar _default = isNotArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isArrayLike = _interopRequireDefault(require(\"./isArrayLike\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @func isNotArrayLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isArrayLike|isArrayLike}\n * @example\n *\n * RA.isNotArrayLike([]); //=> false\n * RA.isNotArrayLike(true); //=> true\n * RA.isNotArrayLike({}); //=> true\n * RA.isNotArrayLike({length: 10}); //=> true\n * RA.isNotArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> false\n */\nvar isNotArrayLike = (0, _ramda.complement)(_isArrayLike[\"default\"]);\nvar _default = isNotArrayLike;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isAsyncFunction = _interopRequireDefault(require(\"./isAsyncFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Async Function`\n *\n * @func isNotAsyncFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotAsyncFunction(async function test() { }); //=> false\n * RA.isNotAsyncFunction(null); //=> true\n * RA.isNotAsyncFunction(function test() { }); //=> true\n * RA.isNotAsyncFunction(() => {}); //=> true\n */\n\n/* eslint-enable max-len */\nvar isNotAsyncFunction = (0, _ramda.complement)(_isAsyncFunction[\"default\"]);\nvar _default = isNotAsyncFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isBoolean = _interopRequireDefault(require(\"./isBoolean\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement of `Boolean`.\n *\n * @func isNotBoolean\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isBoolean|isBoolean}\n * @example\n *\n * RA.isNotBoolean(false); //=> false\n * RA.isNotBoolean(true); //=> false\n * RA.isNotBoolean(null); //=> true\n */\nvar isNotBoolean = (0, _ramda.complement)(_isBoolean[\"default\"]);\nvar _default = isNotBoolean;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is complement of `Date` object.\n *\n * @func isNotDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isDate|isDate}\n * @example\n *\n * RA.isNotDate(new Date()); //=> false\n * RA.isNotDate('1997-07-16T19:20+01:00'); //=> true\n */\nvar isNotDate = (0, _ramda.complement)(_isDate[\"default\"]);\nvar _default = isNotDate;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if the given value is not its type's empty value; `false` otherwise.\n *\n * @func isNotEmpty\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Logic\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#isEmpty|R.isEmpty}\n * @example\n *\n * RA.isNotEmpty([1, 2, 3]); //=> true\n * RA.isNotEmpty([]); //=> false\n * RA.isNotEmpty(''); //=> false\n * RA.isNotEmpty(null); //=> true\n * RA.isNotEmpty(undefined): //=> true\n * RA.isNotEmpty({}); //=> false\n * RA.isNotEmpty({length: 0}); //=> true\n */\nvar isNotEmpty = (0, _ramda.complement)(_ramda.isEmpty);\nvar _default = isNotEmpty;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFinite2 = _interopRequireDefault(require(\"./isFinite\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is complement of finite `Number`.\n *\n *\n * @func isNotFinite\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFinite|isFinite}\n * @example\n *\n * RA.isNotFinite(Infinity); //=> true\n * RA.isNotFinite(NaN); //=> true\n * RA.isNotFinite(-Infinity); //=> true\n *\n * RA.isNotFinite(0); // false\n * RA.isNotFinite(2e64); // false\n *\n * RA.isNotFinite('0'); // => true\n * RA.isNotFinite(null); // => true\n */\nvar isNotFinite = (0, _ramda.complement)(_isFinite2[\"default\"]);\nvar _default = isNotFinite;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is complement of a `float`.\n *\n * @func isNotFloat\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.14.0|v1.14.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFloat|isFloat}\n * @example\n *\n * RA.isNotFloat(0); //=> true\n * RA.isNotFloat(1); //=> true\n * RA.isNotFloat(-100000); //=> true\n *\n * RA.isNotFloat(0.1); //=> false\n * RA.isNotFloat(Math.PI); //=> false\n *\n * RA.isNotFloat(NaN); //=> true\n * RA.isNotFloat(Infinity); //=> true\n * RA.isNotFloat(-Infinity); //=> true\n * RA.isNotFloat('10'); //=> true\n * RA.isNotFloat(true); //=> true\n * RA.isNotFloat(false); //=> true\n * RA.isNotFloat([1]); //=> true\n */\nvar isNotFloat = (0, _curry[\"default\"])((0, _ramda.complement)(_isFloat[\"default\"]));\nvar _default = isNotFloat;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Function`.\n *\n * @func isNotFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isNotAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotFunction(function test() { }); //=> false\n * RA.isNotFunction(function* test() { }); //=> false\n * RA.isNotFunction(async function test() { }); //=> false\n * RA.isNotFunction(() => {}); //=> false\n * RA.isNotFunction(null); //=> true\n * RA.isNotFunction('abc'); //=> true\n */\n\n/* eslint-enable max-len */\nvar isNotFunction = (0, _ramda.complement)(_isFunction[\"default\"]);\nvar _default = isNotFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isGeneratorFunction = _interopRequireDefault(require(\"./isGeneratorFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of `Generator Function`\n *\n * @func isNotGeneratorFunction\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFunction|isFunction}, {@link RA.isAsyncFunction|isAsyncFunction}, {@link RA.isGeneratorFunction|isGeneratorFunction}\n * @example\n *\n * RA.isNotGeneratorFunction(function* test() { }); //=> false\n * RA.isNotGeneratorFunction(null); //=> true\n * RA.isNotGeneratorFunction(function test() { }); //=> true\n * RA.isNotGeneratorFunction(() => {}); //=> true\n */\n\n/* eslint-enable max-len */\nvar isNotGeneratorFunction = (0, _ramda.complement)(_isGeneratorFunction[\"default\"]);\nvar _default = isNotGeneratorFunction;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is complement of an `integer`.\n *\n *\n * @func isNotInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.7.0|v0.7.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isInteger|isInteger}\n * @example\n *\n * RA.isNotInteger(0); //=> false\n * RA.isNotInteger(1); //=> false\n * RA.isNotInteger(-100000); //=> false\n *\n * RA.isNotInteger(0.1); //=> true\n * RA.isNotInteger(Math.PI); //=> true\n *\n * RA.isNotInteger(NaN); //=> true\n * RA.isNotInteger(Infinity); //=> true\n * RA.isNotInteger(-Infinity); //=> true\n * RA.isNotInteger('10'); //=> true\n * RA.isNotInteger(true); //=> true\n * RA.isNotInteger(false); //=> true\n * RA.isNotInteger([1]); //=> true\n */\nvar isNotInteger = (0, _ramda.complement)(_isInteger[\"default\"]);\nvar _default = isNotInteger;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNaN2 = _interopRequireDefault(require(\"./isNaN\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks whether the passed value is complement of `NaN` and its type is not `Number`.\n *\n * @func isNotNaN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNaN|isNaN}\n * @example\n *\n * RA.isNotNaN(NaN); // => false\n * RA.isNotNaN(Number.NaN); // => false\n * RA.isNotNaN(0 / 0); // => false\n *\n * RA.isNotNaN('NaN'); // => true\n * RA.isNotNaN(undefined); // => true\n * RA.isNotNaN({}); // => true\n * RA.isNotNaN('blabla'); // => true\n *\n * RA.isNotNaN(true); // => true\n * RA.isNotNaN(null); // => true\n * RA.isNotNaN(37); // => true\n * RA.isNotNaN('37'); // => true\n * RA.isNotNaN('37.37'); // => true\n * RA.isNotNaN(''); // => true\n * RA.isNotNaN(' '); // => true\n */\nvar isNotNaN = (0, _ramda.complement)(_isNaN2[\"default\"]);\nvar _default = isNotNaN;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if input value is complement of `null` or `undefined`.\n *\n * @func isNotNil\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.3.0|v0.3.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#isNil|R.isNil}\n * @example\n *\n * RA.isNotNil(null); //=> false\n * RA.isNotNil(undefined); //=> false\n * RA.isNotNil(0); //=> true\n * RA.isNotNil([]); //=> true\n */\nvar isNotNil = (0, _ramda.complement)(_ramda.isNil);\nvar _default = isNotNil;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNilOrEmpty = _interopRequireDefault(require(\"./isNilOrEmpty\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the given value is its type's empty value, `null` or `undefined`.\n *\n * @func isNotNilOrEmpty\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.18.0|v2.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNilOrEmpty|isNilOrEmpty}\n * @example\n *\n * RA.isNotNilOrEmpty([1, 2, 3]); //=> true\n * RA.isNotNilOrEmpty([]); //=> false\n * RA.isNotNilOrEmpty(''); //=> false\n * RA.isNotNilOrEmpty(null); //=> false\n * RA.isNotNilOrEmpty(undefined): //=> false\n * RA.isNotNilOrEmpty({}); //=> false\n * RA.isNotNilOrEmpty({length: 0}); //=> true\n */\nvar isNotNilOrEmpty = (0, _ramda.complement)(_isNilOrEmpty[\"default\"]);\nvar _default = isNotNilOrEmpty;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNull = _interopRequireDefault(require(\"./isNull\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement of `null`.\n *\n * @func isNotNull\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.1.0|v0.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNull|isNull}\n * @example\n *\n * RA.isNotNull(1); //=> true\n * RA.isNotNull(undefined); //=> true\n * RA.isNotNull(null); //=> false\n */\nvar isNotNull = (0, _ramda.complement)(_isNull[\"default\"]);\nvar _default = isNotNull;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNumber = _interopRequireDefault(require(\"./isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a complement of `Number` primitive or object.\n *\n * @func isNotNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNumber|isNumber}\n * @example\n *\n * RA.isNotNumber(5); // => false\n * RA.isNotNumber(Number.MAX_VALUE); // => false\n * RA.isNotNumber(-Infinity); // => false\n * RA.isNotNumber('5'); // => true\n */\nvar isNotNumber = (0, _ramda.complement)(_isNumber[\"default\"]);\nvar _default = isNotNumber;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isObj = _interopRequireDefault(require(\"./isObj\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is complement of language type of `Object`.\n *\n * @func isNotObj\n * @aliases isNotObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isObj|isObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isNotObj({}); //=> false\n * RA.isNotObj([]); //=> false\n * RA.isNotObj(() => {}); //=> false\n * RA.isNotObj(null); //=> true\n * RA.isNotObj(undefined); //=> true\n */\n\n/* eslint-enable max-len */\nvar isNotObj = (0, _ramda.complement)(_isObj[\"default\"]);\nvar _default = isNotObj;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isObjLike = _interopRequireDefault(require(\"./isObjLike\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if value is not object-like. A value is object-like if it's not null and has a typeof result of \"object\".\n *\n * @func isNotObjLike\n * @aliases isNotObjectLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isNotObjLike({}); //=> false\n * RA.isNotObjLike([]); //=> false\n * RA.isNotObjLike(() => {}); //=> true\n * RA.isNotObjLike(null); //=> true\n * RA.isNotObjLike(undefined); //=> true\n */\n\n/* eslint-enable max-len */\nvar isNotObjLike = (0, _ramda.complement)(_isObjLike[\"default\"]);\nvar _default = isNotObjLike;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isPair = _interopRequireDefault(require(\"./isPair\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement of a pair.\n *\n * @func isNotPair\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#pair|R.pair}, {@link RA.isPair|isPair}\n * @example\n *\n * RA.isNotPair([]); // => true\n * RA.isNotPair([0]); // => true\n * RA.isNotPair([0, 1]); // => false\n * RA.isNotPair([0, 1, 2]); // => true\n * RA.isNotPair({0: 0, 1: 1}); // => true\n * RA.isNotPair({foo: 0, bar: 0}); // => true\n */\nvar isNotPair = (0, _ramda.complement)(_isPair[\"default\"]);\nvar _default = isNotPair;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isPlainObj = _interopRequireDefault(require(\"./isPlainObj\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Check to see if an object is a not plain object (created using `{}`, `new Object()` or `Object.create(null)`).\n *\n * @func isNotPlainObj\n * @aliases isNotPlainObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPlainObj|isPlainObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}\n * @example\n *\n * class Bar {\n * constructor() {\n * this.prop = 'value';\n * }\n * }\n *\n * RA.isNotPlainObj(new Bar()); //=> true\n * RA.isNotPlainObj({ prop: 'value' }); //=> false\n * RA.isNotPlainObj(['a', 'b', 'c']); //=> true\n * RA.isNotPlainObj(Object.create(null); //=> false\n * RA.isNotPlainObj(new Object()); //=> false\n */\n\n/* eslint-enable max-len */\nvar isNotPlainObj = (0, _ramda.complement)(_isPlainObj[\"default\"]);\nvar _default = isNotPlainObj;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isRegExp = _interopRequireDefault(require(\"./isRegExp\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is complement of `RegExp` object.\n *\n * @func isNotRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isRegExp|isRegExp}\n * @example\n *\n * RA.isNotRegExp(1); //=> true\n * RA.isNotRegExp(/(?:)/); //=> false\n * RA.isNotRegExp(new RegExp()); //=> false\n */\nvar isNotRegExp = (0, _ramda.complement)(_isRegExp[\"default\"]);\nvar _default = isNotRegExp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isString = _interopRequireDefault(require(\"./isString\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement of `String`.\n *\n * @func isNotString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isString|isString}\n * @example\n *\n * RA.isNotString('abc'); //=> false\n * RA.isNotString(1); //=> true\n */\nvar isNotString = (0, _ramda.complement)(_isString[\"default\"]);\nvar _default = isNotString;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isUndefined = _interopRequireDefault(require(\"./isUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is complement `undefined`.\n *\n * @func isNotUndefined\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.0.1|v0.0.1}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isUndefined|isUndefined}\n * @example\n *\n * RA.isNotUndefined(1); //=> true\n * RA.isNotUndefined(undefined); //=> false\n * RA.isNotUndefined(null); //=> true\n */\nvar isNotUndefined = (0, _ramda.complement)(_isUndefined[\"default\"]);\nvar _default = isNotUndefined;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isValidDate = _interopRequireDefault(require(\"./isValidDate\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is complement of valid `Date` object.\n *\n * @func isNotValidDate\n * @aliases isInvalidDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isValidDate|isValidDate}, {@link RA.isDate|isDate}, {@link RA.isNotDate|isNotDate}\n * @example\n *\n * RA.isNotValidDate(new Date()); //=> false\n * RA.isNotValidDate(new Date('a')); //=> true\n */\nvar isNotValidDate = (0, _ramda.complement)(_isValidDate[\"default\"]);\nvar _default = isNotValidDate;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isValidNumber = _interopRequireDefault(require(\"./isValidNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is not a valid `Number`. A valid `Number` is a number that is not `NaN`,\n * `Infinity` or `-Infinity`.\n *\n * @func isNotValidNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isValidNumber|isValidNumber}\n * @example\n *\n * RA.isNotValidNumber(1); //=> false\n * RA.isNotValidNumber(''); //=> true\n * RA.isNotValidNumber(NaN); //=> true\n * RA.isNotValidNumber(Infinity); //=> true\n * RA.isNotValidNumber(-Infinity); //=> true\n */\nvar isNotValidNumber = (0, _ramda.complement)(_isValidNumber[\"default\"]);\nvar _default = isNotValidNumber;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if input value is `null`.\n *\n * @func isNull\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.1.0|v0.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNull|isNotNull}\n * @example\n *\n * RA.isNull(1); //=> false\n * RA.isNull(undefined); //=> false\n * RA.isNull(null); //=> true\n */\nvar isNull = (0, _ramda.equals)(null);\nvar _default = isNull;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isNumber2 = _interopRequireDefault(require(\"ramda/src/internal/_isNumber\"));\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a `Number` primitive or object.\n *\n * @func isNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.6.0|v0.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotNumber|isNotNumber}\n * @example\n *\n * RA.isNumber(5); // => true\n * RA.isNumber(Number.MAX_VALUE); // => true\n * RA.isNumber(-Infinity); // => true\n * RA.isNumber(NaN); // => true\n * RA.isNumber('5'); // => false\n */\nvar isNumber = (0, _curry[\"default\"])(_isNumber2[\"default\"]);\nvar _default = isNumber;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNotNull = _interopRequireDefault(require(\"./isNotNull\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _isOfTypeObject = _interopRequireDefault(require(\"./internal/isOfTypeObject\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if input value is language type of `Object`.\n *\n * @func isObj\n * @aliases isObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotObj|isNotObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isObj({}); //=> true\n * RA.isObj([]); //=> true\n * RA.isObj(() => {}); //=> true\n * RA.isObj(null); //=> false\n * RA.isObj(undefined); //=> false\n */\n\n/* eslint-enable max-len */\nvar isObj = (0, _curry[\"default\"])((0, _ramda.both)(_isNotNull[\"default\"], (0, _ramda.either)(_isOfTypeObject[\"default\"], _isFunction[\"default\"])));\nvar _default = isObj;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNotNull = _interopRequireDefault(require(\"./isNotNull\"));\n\nvar _isOfTypeObject = _interopRequireDefault(require(\"./internal/isOfTypeObject\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if value is object-like. A value is object-like if it's not null and has a typeof result of \"object\".\n *\n * @func isObjLike\n * @aliases isObjectLike\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotObjLike|isNotObjLike}, {@link RA.isObj|isObj}, {@link RA.isPlainObj|isPlainObj}\n * @example\n *\n * RA.isObjLike({}); //=> true\n * RA.isObjLike([]); //=> true\n * RA.isObjLike(() => {}); //=> false\n * RA.isObjLike(null); //=> false\n * RA.isObjLike(undefined); //=> false\n */\n\n/* eslint-enable max-len */\nvar isObjLike = (0, _curry[\"default\"])((0, _ramda.both)(_isNotNull[\"default\"], _isOfTypeObject[\"default\"]));\nvar _default = isObjLike;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is odd integer number.\n * An odd number is an integer which is not a multiple DIVISIBLE of two.\n *\n * @func isOdd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isEven|isEven}\n * @example\n *\n * RA.isOdd(1); // => true\n * RA.isOdd(-Infinity); // => false\n * RA.isOdd(4); // => false\n * RA.isOdd(3); // => true\n */\nvar isOdd = (0, _curry[\"default\"])((0, _ramda.both)(_isInteger[\"default\"], (0, _ramda.pipe)((0, _ramda.flip)(_ramda.modulo)(2), (0, _ramda.complement)(_ramda.equals)(0))));\nvar _default = isOdd;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is a pair.\n *\n * @func isPair\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link http://ramdajs.com/docs/#pair|R.pair}, {@link RA.isNotPair|isNotPair}\n * @example\n *\n * RA.isPair([]); // => false\n * RA.isPair([0]); // => false\n * RA.isPair([0, 1]); // => true\n * RA.isPair([0, 1, 2]); // => false\n * RA.isPair({ 0: 0, 1: 1 }); // => false\n * RA.isPair({ foo: 0, bar: 0 }); // => false\n */\nvar isPair = (0, _curry[\"default\"])((0, _ramda.both)(_isArray[\"default\"], (0, _ramda.pipe)(_ramda.length, (0, _ramda.equals)(2))));\nvar _default = isPair;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isObject2 = _interopRequireDefault(require(\"ramda/src/internal/_isObject\"));\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isNull = _interopRequireDefault(require(\"./isNull\"));\n\nvar _isObjLike = _interopRequireDefault(require(\"./isObjLike\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isObjectConstructor = (0, _ramda.pipe)(_ramda.toString, (0, _ramda.equals)((0, _ramda.toString)(Object)));\nvar hasObjectConstructor = (0, _ramda.pathSatisfies)((0, _ramda.both)(_isFunction[\"default\"], isObjectConstructor), ['constructor']);\n/* eslint-disable max-len */\n\n/**\n * Check to see if an object is a plain object (created using `{}`, `new Object()` or `Object.create(null)`).\n *\n * @func isPlainObj\n * @aliases isPlainObject\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.5.0|v0.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotPlainObj|isNotPlainObj}, {@link RA.isObjLike|isObjLike}, {@link RA.isObj|isObj}\n * @example\n *\n * class Bar {\n * constructor() {\n * this.prop = 'value';\n * }\n * }\n *\n * RA.isPlainObj(new Bar()); //=> false\n * RA.isPlainObj({ prop: 'value' }); //=> true\n * RA.isPlainObj(['a', 'b', 'c']); //=> false\n * RA.isPlainObj(Object.create(null); //=> true\n * RA.isPlainObj(new Object()); //=> true\n */\n\n/* eslint-enable max-len */\n\nvar isPlainObj = (0, _curry[\"default\"])(function (val) {\n if (!(0, _isObjLike[\"default\"])(val) || !(0, _isObject2[\"default\"])(val)) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(val);\n\n if ((0, _isNull[\"default\"])(proto)) {\n return true;\n }\n\n return hasObjectConstructor(proto);\n});\nvar _default = isPlainObj;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isNumber = _interopRequireDefault(require(\"./isNumber\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a positive `Number` primitive or object. Zero is not considered positive.\n *\n * @func isPositive\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.15.0|v1.15.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegative|isNegative}\n * @example\n *\n * RA.isPositive(1); // => true\n * RA.isPositive(Number.MAX_VALUE); // => true\n * RA.isPositive(-Infinity); // => false\n * RA.isPositive(NaN); // => false\n * RA.isPositive('5'); // => false\n */\nvar isPositive = (0, _ramda.both)(_isNumber[\"default\"], (0, _ramda.lt)(0));\nvar _default = isPositive;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if value is a positive zero (+0).\n *\n * @func isPositiveZero\n * @memberof RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNegativeZero|isNegativeZero}\n * @example\n *\n * RA.isPositiveZero(+0); //=> true\n * RA.isPositiveZero(0); //=> true\n * RA.isPositiveZero(-0); //=> false\n * RA.isPositiveZero(null); //=> false\n */\nvar isPositiveZero = (0, _ramda.identical)(+0);\nvar _default = isPositiveZero;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isObj = _interopRequireDefault(require(\"./isObj\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is a native `Promise`.\n * The Promise object represents the eventual completion (or failure)\n * of an asynchronous operation, and its resulting value.\n *\n * @func isPromise\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://promisesaplus.com/|Promises/A+}, {@link RA.isThenable|isThenable}\n * @example\n *\n * RA.isPromise(null); // => false\n * RA.isPromise(undefined); // => false\n * RA.isPromise([]); // => false\n * RA.isPromise(Promise.resolve()); // => true\n * RA.isPromise(Promise.reject()); // => true\n * RA.isPromise({ then: () => 1 }); // => false\n */\nvar isPromise = (0, _curry[\"default\"])((0, _ramda.both)(_isObj[\"default\"], (0, _ramda.pipe)(_ramda.toString, (0, _ramda.equals)('[object Promise]'))));\nvar _default = isPromise;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is `RegExp` object.\n *\n * @func isRegExp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotRegExp|isNotRegExp}\n * @example\n *\n * RA.isRegExp(new RegExp()); //=> true\n * RA.isRegExp(/(?:)/); //=> true\n * RA.isRegExp(1); //=> false\n */\nvar isRegExp = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('RegExp')));\nvar _default = isRegExp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.isSafeIntegerPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Number = _interopRequireDefault(require(\"./internal/polyfills/Number.isSafeInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar isSafeIntegerPolyfill = (0, _curry[\"default\"])(_Number[\"default\"]);\n/**\n * Checks whether the passed value is a safe `integer`.\n *\n * @func isSafeInteger\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @example\n *\n * RA.isSafeInteger(3); //=> true\n * RA.isSafeInteger(Math.pow(2, 53)) //=> false\n * RA.isSafeInteger(Math.pow(2, 53) - 1); //=> true\n * RA.isSafeInteger(NaN); //=> false\n * RA.isSafeInteger(Infinity); //=> false\n * RA.isSafeInteger('3') //=> false\n * RA.isSafeInteger(3.1); //=> false\n * RA.isSafeInteger(3.0); //=> true\n * RA.isSafeInteger('string'); //=> false\n * RA.isSafeInteger(null); //=> false\n * RA.isSafeInteger(undefined); //=> false\n * RA.isSafeInteger({}); //=> false\n * RA.isSafeInteger(() => { }); //=> false\n * RA.isSafeInteger(true); //=> false\n */\n\nexports.isSafeIntegerPolyfill = isSafeIntegerPolyfill;\nvar isSafeInteger = (0, _isFunction[\"default\"])(Number.isSafeInteger) ? (0, _curry[\"default\"])((0, _ramda.bind)(Number.isSafeInteger, Number)) : isSafeIntegerPolyfill;\nvar _default = isSafeInteger;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Predicate for determining if a provided value is an instance of a Set.\n *\n * @func isSet\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isMap|isMap}}\n * @example\n *\n * RA.isSet(new Map()); //=> false\n * RA.isSet(new Set()); //=> true\n * RA.isSet(new Set([1,2]); //=> true\n * RA.isSet(new Object()); //=> false\n */\nvar isSet = (0, _curry[\"default\"])((0, _ramda.pipe)(_ramda.type, (0, _ramda.identical)('Set')));\nvar _default = isSet;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isArray = _interopRequireDefault(require(\"./isArray\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is a sparse Array.\n * An array with at least one \"empty slot\" in it is often called a \"sparse array.\"\n * Empty slot doesn't mean that the slot contains `null` or `undefined` values,\n * but rather that the slots don't exist.\n *\n * @func isSparseArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.20.0|v2.20.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} list The list to test\n * @return {boolean}\n * @see {@link https://github.com/getify/You-Dont-Know-JS/blob/f0d591b6502c080b92e18fc470432af8144db610/types%20%26%20grammar/ch3.md#array|Sparse Arrays}, {@link RA.isArray|isArray}\n * @example\n *\n * RA.isSparseArray(new Array(3)); // => true\n * RA.isSparseArray([1,,3]); // => true\n *\n * const list = [1, 2, 3];\n * delete list[1];\n * RA.isSparseArray(list); // => true\n *\n * RA.isSparseArray([1, 2, 3]); // => false\n */\nvar isSparseArray = (0, _ramda.both)(_isArray[\"default\"], (0, _ramda.converge)((0, _ramda.complement)(_ramda.identical), [(0, _ramda.pipe)(_ramda.values, _ramda.length), _ramda.length]));\nvar _default = isSparseArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _isString2 = _interopRequireDefault(require(\"ramda/src/internal/_isString\"));\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `String`.\n *\n * @func isString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.4.0|v0.4.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotString|isNotString}\n * @example\n *\n * RA.isString('abc'); //=> true\n * RA.isString(1); //=> false\n */\nvar isString = (0, _curry[\"default\"])(_isString2[\"default\"]);\nvar _default = isString;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if input value is a Symbol.\n *\n * @func isSymbol\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol|MDN Symbol}\n * @example\n *\n * RA.isSymbol(Symbol('1')); //=> true\n * RA.isSymbol(Symbol(1)); //=> true\n * RA.isSymbol('string'); //=> false\n * RA.isSymbol(undefined); //=> false\n * RA.isSymbol(null); //=> false\n */\nvar isSymbol = (0, _curry[\"default\"])(function (val) {\n return _typeof(val) === 'symbol' || _typeof(val) === 'object' && (0, _ramda.type)(val) === 'Symbol';\n});\nvar _default = isSymbol;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is a `thenable`.\n * `thenable` is an object or function that defines a `then` method.\n *\n * @func isThenable\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isPromise|isPromise}\n * @example\n *\n * RA.isThenable(null); // => false\n * RA.isThenable(undefined); // => false\n * RA.isThenable([]); // => false\n * RA.isThenable(Promise.resolve()); // => true\n * RA.isThenable(Promise.reject()); // => true\n * RA.isThenable({ then: () => 1 }); // => true\n */\nvar isThenable = (0, _ramda.pathSatisfies)(_isFunction[\"default\"], ['then']);\nvar _default = isThenable;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Checks if input value is the Boolean primitive `true`. Will return false for Boolean objects\n * created using the `Boolean` function as a constructor.\n *\n * @func isTrue\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isFalse|isFalse}, {@link RA.isTruthy|isTruthy}, {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.isTrue(true); // => true\n * RA.isTrue(Boolean(true)); // => true\n * RA.isTrue(false); // => false\n * RA.isTrue(1); // => false\n * RA.isTrue('true'); // => false\n * RA.isTrue(new Boolean(true)); // => false\n */\nvar isTrue = (0, _ramda.identical)(true);\nvar _default = isTrue;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * In JavaScript, a `truthy` value is a value that is considered true\n * when evaluated in a Boolean context. All values are truthy unless\n * they are defined as falsy (i.e., except for `false`, `0`, `\"\"`, `null`, `undefined`, and `NaN`).\n *\n * @func isTruthy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link https://developer.mozilla.org/en-US/docs/Glossary/Truthy|truthy}, {@link RA.isFalsy|isFalsy}\n * @example\n *\n * RA.isTruthy({}); // => true\n * RA.isTruthy([]); // => true\n * RA.isTruthy(42); // => true\n * RA.isTruthy(3.14); // => true\n * RA.isTruthy('foo'); // => true\n * RA.isTruthy(new Date()); // => true\n * RA.isTruthy(Infinity); // => true\n */\nvar isTruthy = (0, _curry[\"default\"])(Boolean);\nvar _default = isTruthy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _stubUndefined = _interopRequireDefault(require(\"./stubUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if input value is `undefined`.\n *\n * @func isUndefined\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/0.0.1|v0.0.1}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotUndefined|isNotUndefined}\n * @example\n *\n * RA.isUndefined(1); //=> false\n * RA.isUndefined(undefined); //=> true\n * RA.isUndefined(null); //=> false\n */\nvar isUndefined = (0, _ramda.equals)((0, _stubUndefined[\"default\"])());\nvar _default = isUndefined;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isDate = _interopRequireDefault(require(\"./isDate\"));\n\nvar _isNotNaN = _interopRequireDefault(require(\"./isNotNaN\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/* eslint-disable max-len */\n\n/**\n * Checks if value is valid `Date` object.\n *\n * @func isValidDate\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.8.0|v1.8.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isDate|isDate}, {@link RA.isNotDate|isNotDate}, {@link RA.isNotValidDate|isNotValidDate}\n * @example\n *\n * RA.isValidDate(new Date()); //=> true\n * RA.isValidDate(new Date('a')); //=> false\n */\n\n/* eslint-enable max-len */\nvar isValidDate = (0, _curry[\"default\"])((0, _ramda.both)(_isDate[\"default\"], (0, _ramda.pipe)((0, _ramda.invoker)(0, 'getTime'), _isNotNaN[\"default\"])));\nvar _default = isValidDate;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFloat = _interopRequireDefault(require(\"./isFloat\"));\n\nvar _isInteger = _interopRequireDefault(require(\"./isInteger\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Checks if value is a valid `Number`. A valid `Number` is a number that is not `NaN`, `Infinity`\n * or `-Infinity`.\n *\n * @func isValidNumber\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.2.0|v2.2.0}\n * @category Type\n * @sig * -> Boolean\n * @param {*} val The value to test\n * @return {boolean}\n * @see {@link RA.isNotValidNumber|isNotValidNumber}\n * @example\n *\n * RA.isValidNumber(1); //=> true\n * RA.isValidNumber(''); //=> false\n * RA.isValidNumber(NaN); //=> false\n * RA.isValidNumber(Infinity); //=> false\n * RA.isValidNumber(-Infinity); //=> false\n */\nvar isValidNumber = (0, _curry[\"default\"])((0, _ramda.either)(_isInteger[\"default\"], _isFloat[\"default\"]));\nvar _default = isValidNumber;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _allP = _interopRequireDefault(require(\"./allP\"));\n\nvar _lengthEq = _interopRequireDefault(require(\"./lengthEq\"));\n\nvar _lengthGte = _interopRequireDefault(require(\"./lengthGte\"));\n\nvar _rejectP = _interopRequireDefault(require(\"./rejectP\"));\n\nvar _resolveP = _interopRequireDefault(require(\"./resolveP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\n/**\n * Returns a promise that is fulfilled by the last given promise to be fulfilled,\n * or rejected with an array of rejection reasons if all of the given promises are rejected.\n *\n * @func lastP\n * @memberOf RA\n * @category Function\n * @since {@link https://char0n.github.io/ramda-adjunct/2.23.0|v2.23.0}\n * @sig [Promise a] -> Promise a\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A promise that is fulfilled by the last given promise to be fulfilled, or rejected with an array of rejection reasons if all of the given promises are rejected.\n * @see {@link RA.anyP|anyP}\n * @example\n *\n * const delayP = timeout => new Promise(resolve => setTimeout(() => resolve(timeout), timeout));\n * delayP.reject = timeout => new Promise((resolve, reject) => setTimeout(() => reject(timeout), timeout));\n * RA.lastP([\n * 1,\n * delayP(10),\n * delayP(100),\n * delayP.reject(1000),\n * ]); //=> Promise(100)\n */\nvar lastP = (0, _curry[\"default\"])(function (iterable) {\n var fulfilled = [];\n var rejected = [];\n var onFulfill = (0, _ramda.bind)(fulfilled.push, fulfilled);\n var onReject = (0, _ramda.bind)(rejected.push, rejected);\n var listOfPromises = (0, _ramda.map)(function (p) {\n return (0, _resolveP[\"default\"])(p).then(onFulfill)[\"catch\"](onReject);\n }, _toConsumableArray(iterable));\n return (0, _allP[\"default\"])(listOfPromises).then(function () {\n if ((0, _lengthEq[\"default\"])(0, fulfilled) && (0, _lengthEq[\"default\"])(0, rejected)) {\n return undefined;\n }\n\n if ((0, _lengthGte[\"default\"])(1, fulfilled)) {\n return (0, _ramda.last)(fulfilled);\n }\n\n return (0, _rejectP[\"default\"])(rejected);\n });\n});\nvar _default = lastP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length equal to `valueLength`.\n *\n * @func lengthEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte},, {@link http://ramdajs.com/docs/#equals|equals}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthEq(3, [1,2,3]); //=> true\n * RA.lengthEq(3, [1,2,3,4]); //=> false\n */\nvar lengthEq = (0, _compareLength[\"default\"])(_ramda.equals);\nvar _default = lengthEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length greater than `valueLength`.\n *\n * @func lengthGt\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#gt|gt}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthGt(3, [1,2,3,4]); //=> true\n * RA.lengthGt(3, [1,2,3]); //=> false\n */\nvar lengthGt = (0, _compareLength[\"default\"])((0, _ramda.flip)(_ramda.gt));\nvar _default = lengthGt;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length greater than or equal to\n * `valueLength`.\n *\n * @func lengthGte\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link http://ramdajs.com/docs/#gte|gte}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthGte(3, [1,2,3,4]); //=> true\n * RA.lengthGte(3, [1,2,3]); //=> true\n * RA.lengthGte(3, [1,2]); //=> false\n */\nvar lengthGte = (0, _compareLength[\"default\"])((0, _ramda.flip)(_ramda.gte));\nvar _default = lengthGte;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length less than `valueLength`.\n *\n * @func lengthLt\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#lt|lt}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthLt(3, [1,2]); //=> true\n * RA.lengthLt(3, [1,2,3]); //=> false\n */\nvar lengthLt = (0, _compareLength[\"default\"])((0, _ramda.flip)(_ramda.lt));\nvar _default = lengthLt;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length less than or equal to `valueLength`.\n *\n * @func lengthLte\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthNotEq|lengthNotEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#lte|lte}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthLte(3, [1,2]); //=> true\n * RA.lengthLte(3, [1,2,3]); //=> true\n * RA.lengthLte(3, [1,2,3,4]); //=> false\n */\nvar lengthLte = (0, _compareLength[\"default\"])((0, _ramda.flip)(_ramda.lte));\nvar _default = lengthLte;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _compareLength = _interopRequireDefault(require(\"./internal/compareLength\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if the supplied list or string has a length not equal to `valueLength`.\n *\n * @func lengthNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> [*] -> Boolean\n * @param {number} valueLength The length of the list or string\n * @param {Array|string} value The list or string\n * @return {boolean}\n * @see {@link RA.lengthEq|lengthEq}, {@link RA.lengthLt|lengthLt}, {@link RA.lengthGt|lengthGt}, {@link RA.lengthLte|lengthLte}, {@link RA.lengthGte|lengthGte}, {@link http://ramdajs.com/docs/#equals|equals}, {@link http://ramdajs.com/docs/#length|length}\n * @example\n *\n * RA.lengthNotEq(3, [1,2,3,4]); //=> true\n * RA.lengthNotEq(3, [1,2,3]); //=> false\n */\nvar lengthNotEq = (0, _compareLength[\"default\"])((0, _ramda.complement)(_ramda.equals));\nvar _default = lengthNotEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns `true` if data structure focused by the given lens equals provided value.\n *\n * @func lensEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> b -> s -> Boolean\n * @see {@link RA.lensNotEq|lensNotEq}\n * @param {function} lens Van Laarhoven lens\n * @param {*} value The value to compare the focused data structure with\n * @param {*} data The data structure\n * @return {boolean} `true` if the focused data structure equals value, `false` otherwise\n *\n * @example\n *\n * RA.lensEq(R.lensIndex(0), 1, [0, 1, 2]); // => false\n * RA.lensEq(R.lensIndex(1), 1, [0, 1, 2]); // => true\n * RA.lensEq(R.lensPath(['a', 'b']), 'foo', { a: { b: 'foo' } }) // => true\n */\nvar lensEq = (0, _ramda.curryN)(3, function (lens, val, data) {\n return (0, _ramda.pipe)((0, _ramda.view)(lens), (0, _ramda.equals)(val))(data);\n});\nvar _default = lensEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n// This implementation was highly inspired by the implementations\n// in ramda-lens library.\n//\n// https://github.com/ramda/ramda-lens\n// isomorphic :: ((a -> b), (b -> a)) -> Isomorphism\n// Isomorphism = x -> y\nvar isomorphic = function isomorphic(to, from) {\n var isomorphism = function isomorphism(x) {\n return to(x);\n };\n\n isomorphism.from = from;\n return isomorphism;\n}; // isomorphisms :: ((a -> b), (b -> a)) -> (a -> b)\n\n\nvar isomorphisms = function isomorphisms(to, from) {\n return isomorphic((0, _ramda.curry)(function (toFunctorFn, target) {\n return (0, _ramda.map)(from, toFunctorFn(to(target)));\n }), (0, _ramda.curry)(function (toFunctorFn, target) {\n return (0, _ramda.map)(to, toFunctorFn(from(target)));\n }));\n}; // from :: Isomorphism -> a -> b\n\n\nvar from = (0, _ramda.curry)(function (isomorphism, x) {\n return isomorphism.from(x);\n});\n/**\n * Defines an isomorphism that will work like a lens. It takes two functions.\n * The function that converts and the function that recovers.\n *\n * @func lensIso\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|1.19.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> (a -> s) -> Lens s a\n * @param {!function} to The function that converts\n * @param {!function} from The function that recovers\n * @return {!function} The isomorphic lens\n * @see {@link http://ramdajs.com/docs/#lens|R.lens}\n *\n * @example\n *\n * const lensJSON = RA.lensIso(JSON.parse, JSON.stringify);\n *\n * R.over(lensJSON, assoc('b', 2), '{\"a\":1}'); //=> '{\"a\":1,\"b\":2}'\n * R.over(RA.lensIso.from(lensJSON), R.replace('}', ',\"b\":2}'), { a: 1 }); // => { a: 1, b: 2 }\n */\n\nvar lensIso = (0, _ramda.curry)(isomorphisms);\nlensIso.from = from;\nvar _default = lensIso;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _lensEq = _interopRequireDefault(require(\"./lensEq\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if data structure focused by the given lens doesn't equal provided value.\n *\n * @func lensNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> b -> s -> Boolean\n * @see {@link RA.lensEq|lensEq}\n * @param {function} lens Van Laarhoven lens\n * @param {*} value The value to compare the focused data structure with\n * @param {*} data The data structure\n * @return {boolean} `false` if the focused data structure equals value, `true` otherwise\n *\n * @example\n *\n * RA.lensNotEq(R.lensIndex(0), 1, [0, 1, 2]); // => true\n * RA.lensNotEq(R.lensIndex(1), 1, [0, 1, 2]); // => false\n * RA.lensNotEq(R.lensPath(['a', 'b']), 'foo', { a: { b: 'foo' } }) // => false\n */\nvar lensNotEq = (0, _ramda.complement)(_lensEq[\"default\"]);\nvar _default = lensNotEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _lensSatisfies = _interopRequireDefault(require(\"./lensSatisfies\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if data structure focused by the given lens doesn't satisfy the predicate.\n * Note that the predicate is expected to return boolean value.\n *\n * @func lensNotSatisfy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Boolean b => (a -> b) -> Lens s a -> s -> b\n * @see {@link RA.lensSatisfies|lensSatisfies}\n * @param {Function} predicate The predicate function\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @return {boolean} `false` if the focused data structure satisfies the predicate, `true` otherwise\n *\n * @example\n *\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(0), [false, true, 1]); // => true\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(1), [false, true, 1]); // => false\n * RA.lensNotSatisfy(RA.isTrue, R.lensIndex(2), [false, true, 1]); // => true\n * RA.lensNotSatisfy(R.identity, R.lensProp('x'), { x: 1 }); // => true\n */\nvar lensNotSatisfy = (0, _ramda.complement)(_lensSatisfies[\"default\"]);\nvar _default = lensNotSatisfy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isTrue = _interopRequireDefault(require(\"./isTrue\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns `true` if data structure focused by the given lens satisfies the predicate.\n * Note that the predicate is expected to return boolean value and will be evaluated\n * as `false` unless the predicate returns `true`.\n *\n * @func lensSatisfies\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Boolean b => (a -> b) -> Lens s a -> s -> b\n * @see {@link RA.lensNotSatisfy|lensNotSatisfy}\n * @param {Function} predicate The predicate function\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @return {boolean} `true` if the focused data structure satisfies the predicate, `false` otherwise\n *\n * @example\n *\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(0), [false, true, 1]); // => false\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(1), [false, true, 1]); // => true\n * RA.lensSatisfies(RA.isTrue, R.lensIndex(2), [false, true, 1]); // => false\n * RA.lensSatisfies(R.identity, R.lensProp('x'), { x: 1 }); // => false\n */\nvar lensSatisfies = (0, _ramda.curryN)(3, function (predicate, lens, data) {\n return (0, _ramda.pipe)((0, _ramda.view)(lens), predicate, _isTrue[\"default\"])(data);\n});\nvar _default = lensSatisfies;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _Identity = _interopRequireDefault(require(\"./fantasy-land/Identity\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates a [Traversable](https://github.com/fantasyland/fantasy-land#traversable) lens\n * from an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning function.\n *\n * When executed, it maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func lensTraverse\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.7.0|2.7.0}\n * @category Relation\n * @typedef Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Applicative f => (a -> f a) -> Lens s a\n * @param {!function} of The Applicative-returning function\n * @return {!function} The Traversable lens\n * @see {@link http://ramdajs.com/docs/#lens|R.lens}, {@link http://ramdajs.com/docs/#traverse|R.traverse}\n *\n * @example\n *\n * const maybeLens = RA.lensTraverse(Maybe.of);\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.over(maybeLens, safeDiv(10), [2, 4, 5]); // => Just([5, 2.5, 2])\n * R.over(maybeLens, safeDiv(10), [2, 0, 5]); // => Nothing\n *\n * R.view(maybeLens, [Maybe.Just(2), Maybe.Just(3)]); // => Maybe.Just([2, 3])\n *\n * R.set(maybeLens, Maybe.Just(1), [Maybe.just(2), Maybe.Just(3)]); // => Maybe.Just([1, 1])\n */\nvar lensTraverse = (0, _curry[\"default\"])(function (of) {\n return (0, _ramda.curry)(function (toFunctorFn, target) {\n return _Identity[\"default\"].of((0, _ramda.traverse)(of, (0, _ramda.pipe)(toFunctorFn, (0, _ramda.prop)('value')), target));\n });\n});\nvar _default = lensTraverse;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _liftFN = _interopRequireDefault(require(\"./liftFN\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" objects that satisfy\n * the fantasy land Apply spec of algebraic structures.\n *\n * Lifting is specific for {@link https://github.com/scalaz/scalaz|scalaz} and {@link http://functionaljava.org/|function Java} implementations.\n * Old version of fantasy land spec were not compatible with this approach,\n * but as of fantasy land 1.0.0 Apply spec also adopted this approach.\n *\n * This function acts as interop for ramda <= 0.23.0 and {@link https://monet.github.io/monet.js/|monet.js}.\n *\n * More info {@link https://github.com/fantasyland/fantasy-land/issues/50|here}.\n *\n * @func liftF\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category Function\n * @sig Apply a => (a... -> a) -> (a... -> a)\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function\n * @see {@link RA.liftFN|liftFN}\n * @example\n *\n * const { Maybe } = require('monet');\n *\n * const add3 = (a, b, c) => a + b + c;\n * const madd3 = RA.liftF(add3);\n *\n * madd3(Maybe.Some(10), Maybe.Some(15), Maybe.Some(17)); //=> Maybe.Some(42)\n * madd3(Maybe.Some(10), Maybe.Nothing(), Maybe.Some(17)); //=> Maybe.Nothing()\n */\nvar liftF = (0, _curry[\"default\"])(function (fn) {\n return (0, _liftFN[\"default\"])(fn.length, fn);\n});\nvar _default = liftF;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _ap = _interopRequireDefault(require(\"./internal/ap\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" objects that satisfy\n * the fantasy land Apply spec of algebraic structures.\n *\n * Lifting is specific for {@link https://github.com/scalaz/scalaz|scalaz} and {@link http://www.functionaljava.org/|functional java} implementations.\n * Old version of fantasy land spec were not compatible with this approach,\n * but as of fantasy land 1.0.0 Apply spec also adopted this approach.\n *\n * This function acts as interop for ramda <= 0.23.0 and {@link https://monet.github.io/monet.js/|monet.js}.\n *\n * More info {@link https://github.com/fantasyland/fantasy-land/issues/50|here}.\n *\n * @func liftFN\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category Function\n * @sig Apply a => Number -> (a... -> a) -> (a... -> a)\n * @param {Number} arity The arity of the lifter function\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function\n * @see {@link http://ramdajs.com/docs/#lift|R.lift}, {@link http://ramdajs.com/docs/#ap|R.ap}\n * @example\n *\n * const { Maybe } = require('monet');\n *\n * const add3 = (a, b, c) => a + b + c;\n * const madd3 = RA.liftFN(3, add3);\n *\n * madd3(Maybe.Some(10), Maybe.Some(15), Maybe.Some(17)); //=> Maybe.Some(42)\n * madd3(Maybe.Some(10), Maybe.Nothing(), Maybe.Some(17)); //=> Maybe.Nothing()\n */\nvar liftFN = (0, _ramda.curry)(function (arity, fn) {\n var lifted = (0, _ramda.curryN)(arity, fn);\n return (0, _ramda.curryN)(arity, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var accumulator = (0, _ramda.map)(lifted, (0, _ramda.head)(args));\n var apps = (0, _ramda.slice)(1, Infinity, args);\n return (0, _ramda.reduce)(_ap[\"default\"], accumulator, apps);\n });\n});\nvar _default = liftFN;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Creates a list from arguments.\n *\n * @func list\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}\n * @category List\n * @sig a... -> [a...]\n * @param {...*} items The items of the feature list\n * @return {Array} New list created from items\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#create-a-list-function|Ramda Cookbook}\n * @example\n *\n * RA.list('a', 'b', 'c'); //=> ['a', 'b', 'c']\n */\nvar list = (0, _ramda.unapply)(_ramda.identity);\nvar _default = list;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * {@link http://ramdajs.com/docs/#map|R.map} function that more closely resembles Array.prototype.map.\n * It takes two new parameters to its callback function: the current index, and the entire list.\n *\n * `mapIndexed` implementation is simple : `\n * const mapIndexed = R.addIndex(R.map);\n * `\n * @func mapIndexed\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @typedef Idx = Number\n * @sig Functor f => ((a, Idx, f a) => b) => f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`\n * @param {Array} list The list to be iterated over\n * @return {Array} The new list\n * @see {@link http://ramdajs.com/docs/#addIndex|R.addIndex}, {@link http://ramdajs.com/docs/#map|R.map}\n * @example\n *\n * RA.mapIndexed((val, idx, list) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\nvar mapIndexed = (0, _ramda.addIndex)(_ramda.map);\nvar _default = mapIndexed;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _mergeRight = _interopRequireDefault(require(\"./mergeRight\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Create a new object with the own properties of the object under the `path`\n * merged with the own properties of the provided `source`.\n * If a key exists in both objects, the value from the `source` object will be used.\n *\n * @func mergePath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Object\n * @sig [k] -> {a} -> {k: {a}} -> {k: {a}}\n * @see {@link RA.mergeProp|mergeProp}\n * @param {!Array} path The property path of the destination object\n * @param {!Object} source The source object\n * @param {!Object} obj The object that has destination object under corresponding property path\n * @return {!Object} The new version of object\n * @example\n *\n * RA.mergePath(\n * ['outer', 'inner'],\n * { foo: 3, bar: 4 },\n * { outer: { inner: { foo: 2 } } }\n * ); //=> { outer: { inner: { foo: 3, bar: 4 } }\n */\nvar mergePath = (0, _ramda.curry)(function (path, source, obj) {\n return (0, _ramda.over)((0, _ramda.lensPath)(path), (0, _mergeRight[\"default\"])(source), obj);\n});\nvar _default = mergePath;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _paths = _interopRequireDefault(require(\"./paths\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Merge objects under corresponding paths.\n *\n * @func mergePaths\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.17.0|v1.17.0}\n * @category Object\n * @sig [[k]] -> {k: {a}} -> {a}\n * @see {@link RA.mergeProps|mergeProps}\n * @param {!Array} paths The property paths to merge\n * @param {!Object} obj The object to query\n * @return {!Object} The object composed of merged property paths of obj\n * @example\n *\n * const obj = {\n * foo: { fooInner: { fooInner2: 1 } },\n * bar: { barInner: 2 }\n * };\n *\n * { ...obj.foo.fooInner, ...obj.bar }; //=> { fooInner2: 1, barInner: 2 }\n * RA.mergePaths([['foo', 'fooInner'], ['bar']], obj); //=> { fooInner2: 1, barInner: 2 }\n */\nvar mergePaths = (0, _ramda.curryN)(2, (0, _ramda.pipe)(_paths[\"default\"], _ramda.mergeAll));\nvar _default = mergePaths;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _mergePath = _interopRequireDefault(require(\"./mergePath\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Create a new object with the own properties of the object under the `p`\n * merged with the own properties of the provided `source`.\n * If a key exists in both objects, the value from the `source` object will be used.\n *\n * @func mergeProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.18.0|v1.18.0}\n * @category Object\n * @sig [k] -> {a} -> {k: {a}} -> {k: {a}}\n * @see {@link RA.mergePath|mergePath}\n * @param {!Array} p The property of the destination object\n * @param {!Object} source The source object\n * @param {!Object} obj The object that has destination object under corresponding property\n * @return {!Object} The new version of object\n * @example\n *\n * RA.mergeProp(\n * 'outer',\n * { foo: 3, bar: 4 },\n * { outer: { foo: 2 } }\n * ); //=> { outer: { foo: 3, bar: 4 } };\n */\nvar mergeProp = (0, _ramda.curry)(function (p, subj, obj) {\n return (0, _mergePath[\"default\"])((0, _ramda.of)(p), subj, obj);\n});\nvar _default = mergeProp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Functional equivalent of merging object properties with object spread operator.\n *\n * @func mergeProps\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.17.0|v1.17.0}\n * @category Object\n * @sig [k] -> {k: {a}} -> {a}\n * @see {@link RA.mergePaths|mergePaths}\n * @param {!Array} ps The property names to merge\n * @param {!Object} obj The object to query\n * @return {!Object} The object composed of merged properties of obj\n * @example\n *\n * const obj = {\n * foo: { fooInner: 1 },\n * bar: { barInner: 2 }\n * };\n *\n * { ...obj.foo, ...obj.bar }; //=> { fooInner: 1, barInner: 2 }\n * RA.mergeProps(['foo', 'bar'], obj); //=> { fooInner: 1, barInner: 2 }\n */\nvar mergeProps = (0, _ramda.curryN)(2, (0, _ramda.pipe)(_ramda.props, _ramda.mergeAll));\nvar _default = mergeProps;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Create a new object with the own properties of the second object merged with\n * the own properties of the first object. If a key exists in both objects,\n * the value from the first object will be used. *\n * Putting it simply: it sets properties only if they don't exist.\n *\n * @func mergeRight\n * @deprecated since v2.12.0; available in ramda@0.26.0 as R.mergeLeft\n * @aliases mergeLeft, resetToDefault\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.6.0|v1.6.0}\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} r Destination\n * @param {Object} l Source\n * @return {Object}\n * @see {@link http://ramdajs.com/docs/#merge|R.merge}, {@link https://github.com/ramda/ramda/wiki/Cookbook#set-properties-only-if-they-dont-exist|Ramda Cookbook}\n * @example\n *\n * RA.mergeRight({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n */\nvar mergeRight = (0, _ramda.flip)(_ramda.merge);\nvar _default = mergeRight;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns a new list with the item at the position `fromIdx` moved to the position `toIdx`. If the\n * `toIdx` is out of the `list` range, the item will be placed at the last position of the `list`.\n * When negative indices are provided, the behavior of the move is unspecified.\n *\n * @func move\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} fromIdx The position of item to be moved\n * @param {Number} toIdx The position of item after move\n * @param {Array} list The list containing the item to be moved\n * @return {Array}\n * @example\n *\n * const list = ['a', 'b', 'c', 'd', 'e'];\n * RA.move(1, 3, list) //=> ['a', 'c', 'd', 'b', 'e']\n */\nvar move = (0, _ramda.curry)(function (fromIdx, toIdx, list) {\n return (0, _ramda.compose)((0, _ramda.insert)(toIdx, (0, _ramda.nth)(fromIdx, list)), (0, _ramda.remove)(fromIdx, 1))(list);\n});\nvar _default = move;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns false if both arguments are truthy; true otherwise.\n *\n * @func nand\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.19.0|v2.19.0}\n * @category Logic\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean} false if both arguments are truesy\n * @example\n *\n * RA.nand(true, true); //=> false\n * RA.nand(false, true); //=> true\n * RA.nand(true, false); //=> true\n * RA.nand(false, false); //=> true\n * RA.nand(1.0, 1.0); //=> false\n * RA.nand(1.0, 0); //=> true\n * RA.nand(0, 1.0); //=> true\n * RA.nand(0, 0); //=> true\n */\nvar nand = (0, _ramda.complement)(_ramda.and); // eslint-disable-line ramda/complement-simplification\n\nvar _default = nand;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * A function which calls the two provided functions and returns the complement of `||`ing the\n * results.\n * It returns false if the first function is truth-y and the complement of the second function\n * otherwise. Note that this is short-circuited, meaning that the second function will not be\n * invoked if the first returns a truth-y value. In short it will return true if neither predicate\n * returns true.\n *\n * In addition to functions, `RA.neither` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func neither\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} Returns a function that applies its arguments to `f` and `g` and returns the complement of `||`ing their outputs together.\n * @see {@link http://ramdajs.com/docs/#either|R.either}, {@link http://ramdajs.com/docs/#or|R.or}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.neither(gt10, even);\n *\n * f(12); //=> false\n * f(8); //=> false\n * f(11); //=> false\n * f(9); //=> true\n */\n\n/* eslint-enable max-len */\nvar neither = (0, _ramda.compose)(_ramda.complement, _ramda.either);\nvar _default = neither;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _allP = _interopRequireDefault(require(\"./allP\"));\n\nvar _rejectP = _interopRequireDefault(require(\"./rejectP\"));\n\nvar _resolveP = _interopRequireDefault(require(\"./resolveP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns a Promise that is resolved with an array of reasons when all of the provided Promises reject, or rejected when any Promise is resolved.\n * This pattern is like allP, but fulfillments and rejections are transposed - rejections become the fulfillment values and vice versa.\n *\n * @func noneP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Function\n * @sig [Promise a] -> Promise [a]\n * @param {Iterable.<*>} iterable An iterable object such as an Array or String\n * @return {Promise} A Promise that is resolved with a list of rejection reasons if all Promises are rejected, or a Promise that is rejected with the fulfillment value of the first Promise that resolves.\n * @see {@link RA.allP|allP}\n * @example\n *\n * RA.noneP([Promise.reject('hello'), Promise.reject('world')]); //=> Promise(['hello', 'world'])\n * RA.noneP([]); //=> Promise([])\n * RA.noneP([Promise.reject(), Promise.resolve('hello world')]); //=> Promise('hello world')\n * RA.noneP([Promise.reject(), 'hello world']); //=> Promise('hello world')\n */\nvar noneP = (0, _ramda.curryN)(1, (0, _ramda.pipe)((0, _ramda.map)(_resolveP[\"default\"]), (0, _ramda.map)(function (p) {\n return p.then(_rejectP[\"default\"], _resolveP[\"default\"]);\n}), _allP[\"default\"]));\nvar _default = noneP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a given list of\n * arguments if none of the provided predicates are satisfied by those arguments. It is the\n * complement of Ramda's anyPass.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func nonePass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see {@link http://ramdajs.com/docs/#anyPass|R.anyPass}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.nonePass([gt10, even]);\n *\n * f(12); //=> false\n * f(8); //=> false\n * f(11); //=> false\n * f(9); //=> true\n */\nvar nonePass = (0, _ramda.compose)(_ramda.complement, _ramda.anyPass);\nvar _default = nonePass;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _stubUndefined = _interopRequireDefault(require(\"./stubUndefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * A function that performs no operations.\n *\n * @func noop\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.0.0|v1.0.0}\n * @category Function\n * @sig ... -> undefined\n * @return {undefined}\n * @example\n *\n * RA.noop(); //=> undefined\n * RA.noop(1, 2, 3); //=> undefined\n */\nvar noop = (0, _ramda.always)((0, _stubUndefined[\"default\"])());\nvar _default = noop;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if both arguments are falsy; false otherwise.\n *\n * @func nor\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.20.0|v2.20.0}\n * @category Logic\n * @sig a -> b -> a ⊽ b\n * @param {*} a\n * @param {*} b\n * @return {boolean} true if both arguments are falsy\n * @see {@link RA.neither|neither}\n * @example\n *\n * RA.nor(true, true); //=> false\n * RA.nor(false, true); //=> false\n * RA.nor(true, false); //=> false\n * RA.nor(false, false); //=> true\n * RA.nor(1, 1); //=> false\n * RA.nor(1, 0); //=> false\n * RA.nor(0, 1); //=> false\n * RA.nor(0, 0); //=> true\n */\nvar nor = (0, _ramda.complement)(_ramda.or); // eslint-disable-line ramda/complement-simplification\n\nvar _default = nor;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a given list of\n * arguments if one or more of the provided predicates is not satisfied by those arguments. It is\n * the complement of Ramda's allPass.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func notAllPass\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see {@link http://ramdajs.com/docs/#allPass|R.allPass}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.notAllPass([gt10, even]);\n *\n * f(12); //=> false\n * f(8); //=> true\n * f(11); //=> true\n * f(9); //=> true\n */\nvar notAllPass = (0, _ramda.compose)(_ramda.complement, _ramda.allPass);\nvar _default = notAllPass;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _allUnique = _interopRequireDefault(require(\"./allUnique\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns true if at least one item of the list is repeated. `R.equals` is used to determine equality.\n *\n * @func notAllUnique\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig [a] -> Boolean\n * @param {Array} list The list of values\n * @return {boolean}\n * @see {@link RA.allUnique|allUnique}, {@link https://ramdajs.com/docs/#equals|equals}\n * @example\n *\n * RA.notAllUnique([ 1, 1, 2, 3 ]); //=> true\n * RA.notAllUnique([ 1, 2, 3, 4 ]); //=> false\n * RA.notAllUnique([]); //=> false\n *\n */\nvar notAllUnique = (0, _ramda.complement)(_allUnique[\"default\"]);\nvar _default = notAllUnique;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * A function which calls the two provided functions and returns the complement of `&&`ing the\n * results.\n * It returns true if the first function is false-y and the complement of the second function\n * otherwise. Note that this is short-circuited, meaning that the second function will not be\n * invoked if the first returns a false-y value. In short it will return true unless both predicates\n * return true.\n *\n * In addition to functions, `RA.notBoth` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func notBoth\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} Returns a function that applies its arguments to `f` and `g` and returns the complement of `&&`ing their outputs together.\n * @see {@link http://ramdajs.com/docs/#both|R.both}\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const even = (x) => x % 2 === 0;\n * const f = RA.notBoth(gt10, even);\n *\n * f(12); //=> false\n * f(8); //=> true\n * f(11); //=> true\n * f(9); //=> true\n */\n\n/* eslint-enable max-len */\nvar notBoth = (0, _ramda.compose)(_ramda.complement, _ramda.both);\nvar _default = notBoth;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * Returns a partial copy of an object containing only the keys\n * that don't satisfy the supplied predicate.\n *\n * @func omitBy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.6.0|v2.6.0}\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {!Function} pred A predicate to determine whether or not a key should be included on the output object\n * @param {!Object} obj The object to copy from\n * @return {!Object} A new object only with properties that don't satisfy `pred`\n *\n * @example\n *\n * const isLowerCase = (val, key) => key.toLowerCase() === key;\n * RA.omitBy(isLowerCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\n/* eslint-enable max-len */\nvar omitBy = (0, _ramda.useWith)(_ramda.pickBy, [_ramda.complement, _ramda.identity]);\nvar _default = omitBy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n// helpers\nvar rejectIndexed = (0, _ramda.addIndex)(_ramda.reject);\nvar containsIndex = (0, _ramda.curry)(function (indexes, val, index) {\n return (0, _ramda.contains)(index, indexes);\n});\n/**\n * Returns a partial copy of an array omitting the indexes specified.\n *\n * @func omitIndexes\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category List\n * @sig [Int] -> [a] -> [a]\n * @see {@link http://ramdajs.com/docs/#omit|R.omit}, {@link RA.pickIndexes|pickIndexes}\n * @param {!Array} indexes The array of indexes to omit from the new array\n * @param {!Array} list The array to copy from\n * @return {!Array} The new array with omitted indexes\n * @example\n *\n * RA.omitIndexes([-1, 1, 3], ['a', 'b', 'c', 'd']); //=> ['a', 'c']\n */\n\nvar omitIndexes = (0, _ramda.curry)(function (indexes, list) {\n return rejectIndexed(containsIndex(indexes), list);\n});\nvar _default = omitIndexes;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.padEndInvoker = exports.padEndPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.padEnd\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar padEndPolyfill = (0, _ramda.curry)(_String[\"default\"]);\nexports.padEndPolyfill = padEndPolyfill;\nvar padEndInvoker = (0, _ramda.flip)((0, _ramda.invoker)(2, 'padEnd'));\n/**\n * The function pads the current string with a given string\n * (repeated, if needed) so that the resulting string reaches a given length.\n * The padding is applied from the end of the current string.\n *\n * @func padCharsEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> Number -> String -> String\n * @param {string} padString The string to pad the current string with\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string\n * applied at the end of the current string\n * @see {@link RA.padEnd|padEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padStart|padStart}\n * @example\n *\n * RA.padCharsEnd('-', 3, 'a'); // => 'a--'\n * RA.padCharsEnd('foo', 10, 'abc'); // => 'abcfoofoof'\n * RA.padCharsEnd('123456', 6, 'abc'); // => 'abc123'\n */\n\nexports.padEndInvoker = padEndInvoker;\nvar padCharsEnd = (0, _isFunction[\"default\"])(String.prototype.padEnd) ? padEndInvoker : padEndPolyfill;\nvar _default = padCharsEnd;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.padStartPolyfill = exports.padStartInvoker = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.padStart\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar padStartInvoker = (0, _ramda.flip)((0, _ramda.invoker)(2, 'padStart'));\nexports.padStartInvoker = padStartInvoker;\nvar padStartPolyfill = (0, _ramda.curry)(_String[\"default\"]);\n/**\n * The function pads the current string with a given string\n * (repeated, if needed) so that the resulting string reaches a given length.\n * The padding is applied from the start of the current string.\n *\n * @func padCharsStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> Number -> String -> String\n * @param {string} padString The string to pad the current string with\n * @param {number} targetLength The length of the resulting string once the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string on the start of current string\n * @see {@link RA.padStart|padStart}, {@link RA.padEnd|padEnd}, {@link RA.padCharsEnd|padCharsEnd}\n * @example\n *\n * RA.padCharsStart('-', 3, 'a'); // => '--a'\n * RA.padCharsStart('foo', 10, 'abc'); // => 'foofoofabc'\n * RA.padCharsStart('123456', 6, 'abc'); // => '123abc'\n */\n\nexports.padStartPolyfill = padStartPolyfill;\nvar padCharsStart = (0, _isFunction[\"default\"])(String.prototype.padStart) ? padStartInvoker : padStartPolyfill;\nvar _default = padCharsStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _padCharsEnd = _interopRequireDefault(require(\"./padCharsEnd\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * The function pads the current string with an empty string\n * so that the resulting string reaches a given length.\n * The padding is applied from the end of the current string.\n *\n * @func padEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig Number -> String -> String\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the pad string\n * applied at the end of the current string\n * @see {@link RA.padCharsEnd|padCharsEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padStart|padStart}\n * @example\n *\n * RA.padEnd(3, 'a'); // => 'a '\n */\nvar padEnd = (0, _padCharsEnd[\"default\"])(' ');\nvar _default = padEnd;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _padCharsStart = _interopRequireDefault(require(\"./padCharsStart\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Pads string on the left side if it's shorter than length.\n *\n * @func padStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.25.0|v2.25.0}\n * @category String\n * @sig Number -> String -> String\n * @param {number} targetLength The length of the resulting string once\n * the current string has been padded\n * @param {string} value String value to be padded\n * @return {string} A new string of the specified length with the empty string\n * applied to the beginning of the current string\n * @see {@link RA.padCharsEnd|padCharsEnd}, {@link RA.padCharsStart|padCharsStart}, {@link RA.padEnd|padEnd}\n * @example\n *\n * RA.padStart(3, 'a'); // => ' a'\n */\nvar padStart = (0, _padCharsStart[\"default\"])(' ');\nvar _default = padStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * Determines whether a nested path on an object doesn't have a specific value,\n * in R.equals terms. Most likely used to filter a list.\n *\n * @func pathNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.4.0|v2.4.0}\n * @category Relation\n * @sig [Idx] => a => {a} => Boolean\n * @sig Idx = String | Int\n * @param {Array} path The path of the nested property to use\n * @param {a} val The value to compare the nested property with\n * @param {Object} object The object to check the nested property in\n * @return {boolean} Returns Boolean `false` if the value equals the nested object property, `true` otherwise\n * @see {@link http://ramdajs.com/docs/#pathEq|R.pathEq}\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathNotEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user2, user3 ]\n */\n\n/* eslint-enable max-len */\nvar pathNotEq = (0, _ramda.complement)(_ramda.pathEq);\nvar _default = pathNotEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * If the given, non-null object has a value at the given path, returns the value at that path.\n * Otherwise returns the result of invoking the provided function with the object.\n *\n * @func pathOrLazy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig ({a} -> a) -> [Idx] -> {a} -> a\n * @param {Function} defaultFn The function that will return the default value.\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * RA.pathOrLazy(() => 'N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\nvar pathOrLazy = (0, _ramda.curryN)(3, function pathOrLazy(defaultFn, path, obj) {\n return (0, _ramda.when)((0, _ramda.identical)(defaultFn), (0, _ramda.partial)((0, _ramda.unary)(defaultFn), [obj]), (0, _ramda.pathOr)(defaultFn, path, obj));\n});\nvar _default = pathOrLazy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Acts as multiple path: arrays of paths in, array of values out. Preserves order.\n *\n * @func paths\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.2.0|v1.2.0}\n * @category List\n * @sig [[k]] -> {k: v} - [v]\n * @param {Array} ps The property paths to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#derivative-of-rprops-for-deep-fields|Ramda Cookbook}, {@link http://ramdajs.com/docs/#props|R.props}\n * @example\n *\n * const obj = {\n * a: { b: { c: 1 } },\n * x: 2,\n * };\n *\n * RA.paths([['a', 'b', 'c'], ['x']], obj); //=> [1, 2]\n */\nvar paths = (0, _ramda.curry)(function (ps, obj) {\n return (0, _ramda.ap)([(0, _ramda.path)(_ramda.__, obj)], ps);\n});\nvar _default = paths;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n// helpers\nvar filterIndexed = (0, _ramda.addIndex)(_ramda.filter);\nvar containsIndex = (0, _ramda.curry)(function (indexes, val, index) {\n return (0, _ramda.contains)(index, indexes);\n});\n/**\n * Picks values from list by indexes.\n *\n * Note: pickIndexes will skip non existing indexes. If you want to include them\n * use ramda's `props` function.\n *\n * @func pickIndexes\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.1.0|v1.1.0}\n * @category List\n * @sig [Number] -> [a] -> [a]\n * @param {Array} indexes The indexes to pick\n * @param {Array} list The list to pick values from\n * @return {Array} New array containing only values at `indexes`\n * @see {@link http://ramdajs.com/docs/#pick|R.pick}, {@link RA.omitIndexes|omitIndexes}\n * @example\n *\n * RA.pickIndexes([0, 2], ['a', 'b', 'c']); //=> ['a', 'c']\n */\n\nvar pickIndexes = (0, _ramda.curry)(function (indexes, list) {\n return filterIndexed(containsIndex(indexes), list);\n});\nvar _default = pickIndexes;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns true if the specified object property is not equal,\n * in R.equals terms, to the given value; false otherwise.\n *\n * @func propNotEq\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name The property to pick\n * @param {a} val The value to compare to\n * @param {Object} object The object, that presumably contains value under the property\n * @return {boolean} Comparison result\n * @see {@link http://ramdajs.com/docs/#propEq|R.propEq}\n * @example\n *\n * const abby = { name: 'Abby', age: 7, hair: 'blond' };\n * const fred = { name: 'Fred', age: 12, hair: 'brown' };\n * const rusty = { name: 'Rusty', age: 10, hair: 'brown' };\n * const alois = { name: 'Alois', age: 15, disposition: 'surly' };\n * const kids = [abby, fred, rusty, alois];\n * const hasNotBrownHair = RA.propNotEq('hair', 'brown');\n *\n * R.filter(hasNotBrownHair, kids); //=> [abby, alois]\n */\nvar propNotEq = (0, _ramda.complement)(_ramda.propEq);\nvar _default = propNotEq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * {@link http://ramdajs.com/docs/#reduce|R.reduce} function that more closely resembles Array.prototype.reduce.\n * It takes two new parameters to its callback function: the current index, and the entire list.\n *\n * `reduceIndexed` implementation is simple : `\n * const reduceIndexed = R.addIndex(R.reduce);\n * `\n * @func reduceIndexed\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.5.0|v2.5.0}\n * @category List\n * @typedef Idx = Number\n * @sig ((a, b, Idx, [b]) => a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives four values,\n * the accumulator, the current element from the array, index and the entire list\n * @param {*} acc The accumulator value\n * @param {Array} list The list to iterate over\n * @return {*} The final, accumulated value\n * @see {@link http://ramdajs.com/docs/#addIndex|R.addIndex}, {@link http://ramdajs.com/docs/#reduce|R.reduce}\n * @example\n *\n * const initialList = ['f', 'o', 'o', 'b', 'a', 'r'];\n *\n * reduceIndexed((acc, val, idx, list) => acc + '-' + val + idx, '', initialList);\n * //=> \"-f0-o1-o2-b3-a4-r5\"\n */\nvar reduceIndexed = (0, _ramda.addIndex)(_ramda.reduce);\nvar _default = reduceIndexed;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isUndefined = _interopRequireDefault(require(\"./isUndefined\"));\n\nvar _resolveP = _interopRequireDefault(require(\"./resolveP\"));\n\nvar _allP = _interopRequireDefault(require(\"./allP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/* eslint-disable max-len */\n\n/**\n * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,\n * which produces promises (or a mix of promises and values),\n * iterate over all the values in the `Iterable` into an array and\n * reduce the array to a value using the given iterator function.\n *\n * If the iterator function returns a promise, then the result of the promise is awaited,\n * before continuing with next iteration. If any promise in the array is rejected or a promise\n * returned by the iterator function is rejected, the result is rejected as well.\n *\n * If `initialValue` is `undefined` (or a promise that resolves to `undefined`) and\n * the `Iterable` contains only 1 item, the callback will not be called and\n * the `Iterable's` single item is returned. If the `Iterable` is empty, the callback\n * will not be called and `initialValue` is returned (which may be undefined).\n *\n * This function is basically equivalent to {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}.\n *\n * @func reduceP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}\n * @category List\n * @typedef MaybePromise = Promise.<*> | *\n * @sig ((Promise a, MaybePromise b) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the current element from the list\n * @param {*|Promise.<*>} acc The accumulator value\n * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over\n * @return {Promise} The final, accumulated value\n * @see {@link http://ramdajs.com/docs/#reduce|R.reduce}, {@link RA.reduceRightP|reduceRightP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}\n * @example\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * Promise.resolve(0),\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceP(\n * (total, fileName) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])\n * ); // => Promise(10)\n *\n */\n\n/* esline-enable max-len */\nvar reduceP = (0, _ramda.curryN)(3, function (fn, acc, list) {\n return (0, _resolveP[\"default\"])(list).then(function (iterable) {\n var listLength = (0, _ramda.length)(iterable);\n\n if (listLength === 0) {\n return acc;\n }\n\n var reducer = (0, _ramda.reduce)(function (accP, currentValueP) {\n return accP.then(function (previousValue) {\n return (0, _allP[\"default\"])([previousValue, currentValueP]);\n }).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n previousValue = _ref2[0],\n currentValue = _ref2[1];\n\n if ((0, _isUndefined[\"default\"])(previousValue) && listLength === 1) {\n return currentValue;\n }\n\n return fn(previousValue, currentValue);\n });\n });\n return reducer((0, _resolveP[\"default\"])(acc), iterable);\n });\n});\nvar _default = reduceP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isUndefined = _interopRequireDefault(require(\"./isUndefined\"));\n\nvar _resolveP = _interopRequireDefault(require(\"./resolveP\"));\n\nvar _allP = _interopRequireDefault(require(\"./allP\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n// in older ramda versions the order of the arguments is flipped\nvar flipArgs = (0, _ramda.pipe)((0, _ramda.reduceRight)(_ramda.concat, ''), (0, _ramda.equals)('ba'))(['a', 'b']);\n/* eslint-disable max-len */\n\n/**\n * Given an `Iterable`(arrays are `Iterable`), or a promise of an `Iterable`,\n * which produces promises (or a mix of promises and values),\n * iterate over all the values in the `Iterable` into an array and\n * reduce the array to a value using the given iterator function.\n *\n * Similar to {@link RA.reduceP|reduceP} except moves through the input list from the right to the left.\n * The iterator function receives two values: (value, acc),\n * while the arguments' order of reduceP's iterator function is (acc, value).\n *\n * @func reduceRightP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|v1.13.0}\n * @category List\n * @typedef MaybePromise = Promise.<*> | *\n * @sig ((MaybePromise b, Promise a) -> Promise a) -> MaybePromise a -> MaybePromise [MaybePromise b] -> Promise a\n * @param {Function} fn The iterator function. Receives two values, the current element from the list and the accumulator\n * @param {*|Promise.<*>} acc The accumulator value\n * @param {Array.<*>|Promise.<Array<*|Promise.<*>>>} list The list to iterate over\n * @return {Promise} The final, accumulated value\n * @see {@link RA.reduceP|reduceP}, {@link http://bluebirdjs.com/docs/api/promise.reduce.html|bluebird.reduce}\n * @example\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * Promise.resolve(0),\n * ['file1.txt', 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * [Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt']\n * ); // => Promise(10)\n *\n * RA.reduceRightP(\n * (fileName, total) => fs\n * .readFileAsync(fileName, 'utf8')\n * .then(contents => total + parseInt(contents, 10)),\n * 0,\n * Promise.resolve([Promise.resolve('file1.txt'), 'file2.txt', 'file3.txt'])\n * ); // => Promise(10)\n *\n */\n\n/* esline-enable max-len */\n\nvar reduceRightP = (0, _ramda.curryN)(3, function (fn, acc, list) {\n return (0, _resolveP[\"default\"])(list).then(function (iterable) {\n var listLength = (0, _ramda.length)(iterable);\n\n if (listLength === 0) {\n return acc;\n }\n\n var reducer = (0, _ramda.reduceRight)(function (arg1, arg2) {\n var accP;\n var currentValueP;\n\n if (flipArgs) {\n accP = arg1;\n currentValueP = arg2;\n } else {\n accP = arg2;\n currentValueP = arg1;\n }\n\n return accP.then(function (previousValue) {\n return (0, _allP[\"default\"])([previousValue, currentValueP]);\n }).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n previousValue = _ref2[0],\n currentValue = _ref2[1];\n\n if ((0, _isUndefined[\"default\"])(previousValue) && listLength === 1) {\n return currentValue;\n }\n\n return fn(currentValue, previousValue);\n });\n });\n return reducer((0, _resolveP[\"default\"])(acc), iterable);\n });\n});\nvar _default = reduceRightP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Composable shortcut for `Promise.reject`.\n *\n * Returns a Promise object that is rejected with the given reason.\n *\n * @func rejectP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category Function\n * @sig a -> Promise a\n * @param {*} [reason=undefined] Reason why this Promise rejected\n * @return {Promise} A Promise that is rejected with the given reason\n * @see {@link RA.resolveP|resolveP}\n * @example\n *\n * RA.rejectP(); //=> Promise(undefined)\n * RA.rejectP('a'); //=> Promise('a')\n * RA.rejectP([1, 2, 3]); //=> Promise([1, 2, 3])\n */\nvar rejectP = (0, _ramda.bind)(Promise.reject, Promise);\nvar _default = rejectP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _renameKeysWith = _interopRequireDefault(require(\"./renameKeysWith\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar valueOrKey = function valueOrKey(keysMap) {\n return function (key) {\n if ((0, _ramda.has)(key, keysMap)) {\n return keysMap[key];\n }\n\n return key;\n };\n};\n/**\n * Creates a new object with the own properties of the provided object, but the\n * keys renamed according to the keysMap object as `{oldKey: newKey}`.\n * When some key is not found in the keysMap, then it's passed as-is.\n *\n * Keep in mind that in the case of keys conflict is behaviour undefined and\n * the result may vary between various JS engines!\n *\n * @func renameKeys\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}\n * @category Object\n * @sig {a: b} -> {a: *} -> {b: *}\n * @param {!Object} keysMap\n * @param {!Object} obj\n * @return {!Object} New object with renamed keys\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object|Ramda Cookbook}, {@link RA.renameKeysWith|renameKeysWith}\n * @example\n *\n * const input = { firstName: 'Elisia', age: 22, type: 'human' };\n *\n * RA.renameKeys({ firstName: 'name', type: 'kind', foo: 'bar' })(input);\n * //=> { name: 'Elisia', age: 22, kind: 'human' }\n */\n\n\nvar renameKeys = (0, _ramda.curry)(function (keysMap, obj) {\n return (0, _renameKeysWith[\"default\"])(valueOrKey(keysMap), obj);\n});\nvar _default = renameKeys;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Creates a new object with the own properties of the provided object, but the\n * keys renamed according to logic of renaming function.\n *\n * Keep in mind that in the case of keys conflict is behaviour undefined and\n * the result may vary between various JS engines!\n *\n * @func renameKeysWith\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.5.0|v1.5.0}\n * @category Object\n * @sig (a -> b) -> {a: *} -> {b: *}\n * @param {Function} fn Function that renames the keys\n * @param {!Object} obj Provided object\n * @return {!Object} New object with renamed keys\n * @see {@link https://github.com/ramda/ramda/wiki/Cookbook#rename-keys-of-an-object-by-a-function|Ramda Cookbook}, {@link RA.renameKeys|renameKeys}\n * @example\n *\n * RA.renameKeysWith(R.concat('a'), { A: 1, B: 2, C: 3 }) //=> { aA: 1, aB: 2, aC: 3 }\n */\nvar renameKeysWith = (0, _ramda.curry)(function (fn, obj) {\n return (0, _ramda.pipe)(_ramda.toPairs, (0, _ramda.map)((0, _ramda.over)((0, _ramda.lensIndex)(0), fn)), _ramda.fromPairs)(obj);\n});\nvar _default = renameKeysWith;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.repeatStrInvoker = exports.repeatStrPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.repeat\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar repeatStrPolyfill = (0, _ramda.curry)(_String[\"default\"]);\nexports.repeatStrPolyfill = repeatStrPolyfill;\nvar repeatStrInvoker = (0, _ramda.flip)((0, _ramda.invoker)(1, 'repeat'));\n/**\n * Constructs and returns a new string which contains the specified\n * number of copies of the string on which it was called, concatenated together.\n *\n * @func repeatStr\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.11.0|v2.11.0}\n * @category List\n * @sig String -> Number -> String\n * @param {string} value String value to be repeated\n * @param {number} count An integer between 0 and +∞: [0, +∞), indicating the number of times to repeat the string in the newly-created string that is to be returned\n * @return {string} A new string containing the specified number of copies of the given string\n * @example\n *\n * RA.repeatStr('a', 3); //=> 'aaa'\n */\n\nexports.repeatStrInvoker = repeatStrInvoker;\nvar repeatStr = (0, _isFunction[\"default\"])(String.prototype.repeat) ? repeatStrInvoker : repeatStrPolyfill;\nvar _default = repeatStr;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.replaceAllInvoker = exports.replaceAllPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.replaceAll\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar replaceAllPolyfill = (0, _ramda.curryN)(3, _String[\"default\"]);\nexports.replaceAllPolyfill = replaceAllPolyfill;\nvar replaceAllInvoker = (0, _ramda.invoker)(2, 'replaceAll');\n/**\n * Replaces all substring matches in a string with a replacement.\n *\n * @func replaceAll\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.17.0|v2.17.0}\n * @category String\n * @sig String -> String -> String -> String\n * @param {string} searchValue The substring or a global RegExp to match\n * @param {string} replaceValue The string to replace the matches with\n * @param {string} str The String to do the search and replacement in\n * @return {string} A new string containing all the `searchValue` replaced with the `replaceValue`\n * @throws {TypeError} When invalid arguments provided\n * @see {@link http://ramdajs.com/docs/#replace|R.replace}, {@link https://github.com/tc39/proposal-string-replaceall|TC39 proposal}\n * @example\n *\n * RA.replaceAll('ac', 'ef', 'ac ab ac ab'); //=> 'ef ab ef ab'\n * RA.replaceAll('', '_', 'xxx'); //=> '_x_x_x_'\n * RA.replaceAll(/x/g, 'v', 'xxx'); //=> 'vvv'\n * RA.replaceAll(/x/, 'v', 'xxx'); //=> TypeError\n */\n\nexports.replaceAllInvoker = replaceAllInvoker;\nvar replaceAll = (0, _isFunction[\"default\"])(String.prototype.replaceAll) ? replaceAllInvoker : replaceAllPolyfill;\nvar _default = replaceAll;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * Composable shortcut for `Promise.resolve`.\n *\n * Returns a Promise object that is resolved with the given value.\n * If the value is a thenable (i.e. has a \"then\" method), the returned promise will\n * \"follow\" that thenable, adopting its eventual state.\n *\n * @func resolveP\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category Function\n * @sig a -> Promise a\n * @param {*} [value=undefined] Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve\n * @return {Promise} A Promise that is resolved with the given value, or the promise passed as value, if the value was a promise object\n * @see {@link RA.rejectP|rejectP}\n * @example\n *\n * RA.resolveP(); //=> Promise(undefined)\n * RA.resolveP('a'); //=> Promise('a')\n * RA.resolveP([1, 2, 3]); //=> Promise([1, 2, 3])\n */\n\n/* eslint-enable max-len */\nvar resolveP = (0, _ramda.bind)(Promise.resolve, Promise);\nvar _default = resolveP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Returns the value of a number rounded to the nearest integer.\n *\n * @func round\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number -> Number\n * @param {number} number The number to round\n * @return {number} The value of the given number rounded to the nearest integer\n * @example\n *\n * RA.round(0.9); //=> 1\n * RA.round(5.95); //=> 6\n * RA.round(5.5); //=> 6\n * RA.round(5.05); //=> 5\n * RA.round(-5.05); //=> -5\n * RA.round(-5.5); //=> -5\n * RA.round(-5.95); //=> -6\n */\nvar round = (0, _curry[\"default\"])((0, _ramda.bind)(Math.round, Math));\nvar _default = round;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/* eslint-disable max-len */\n\n/**\n * Runs the given list of functions in order with the supplied object, then returns the object.\n * Also known as the normal order sequencing combinator.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func seq\n * @aliases sequencing\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.3.0|v2.3.0}\n * @category Function\n * @sig [(a -> *), (a -> *), ...] -> a -> a\n * @param {Array} fns The list of functions to call in order with `x` whose return values will be thrown away\n * @param {*} x\n * @return {*} `x`\n * @see {@link http://ramdajs.com/docs/#tap|R.tap}, {@link http://www.cs.rpi.edu/academics/courses/spring11/proglang/handouts/lambda-calculus-chapter.pdf|sequencing combinator explained}\n * @example\n *\n * RA.seq([console.info, console.log])('foo'); //=> prints 'foo' via info then log\n *\n * // usage in composition\n * R.pipe(\n * R.concat('prefix '),\n * RA.seq([\n * console.info, //=> prints 'prefix test'\n * console.log //=> prints 'prefix test'\n * ]),\n * R.toUpper\n * )('test'); //=> 'PREFIX TEST'\n */\n\n/* eslint-enable max-len */\nvar seq = (0, _ramda.curry)(function (fns, x) {\n return (0, _ramda.tap)(function (tx) {\n return (0, _ramda.map)(function (fn) {\n return fn(tx);\n })(fns);\n })(x);\n});\nvar _default = seq;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.signPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Math = _interopRequireDefault(require(\"./internal/polyfills/Math.sign\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar signPolyfill = (0, _curry[\"default\"])(_Math[\"default\"]);\n/**\n * Returns the sign of a number, indicating whether the number is positive, negative or zero.\n *\n * @func sign\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number | String -> Number\n * @param {number} number A number\n * @return {number} A number representing the sign of the given argument. If the argument is a positive number, negative number, positive zero or negative zero, the function will return 1, -1, 0 or -0 respectively. Otherwise, NaN is returned\n * @example\n *\n * RA.sign(3); // 1\n * RA.sign(-3); // -1\n * RA.sign('-3'); // -1\n * RA.sign(0); // 0\n * RA.sign(-0); // -0\n * RA.sign(NaN); // NaN\n * RA.sign('foo'); // NaN\n */\n\nexports.signPolyfill = signPolyfill;\nvar sign = (0, _isFunction[\"default\"])(Math.sign) ? (0, _curry[\"default\"])((0, _ramda.bind)(Math.sign, Math)) : signPolyfill;\nvar _default = sign;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns the elements of the given list or string (or object with a slice method)\n * from fromIndex (inclusive).\n * Dispatches to the slice method of the second argument, if present.\n *\n * @func sliceFrom\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category List\n * @sig Number -> [a] -> [a]\n * @param {number} fromIndex The start index (inclusive)\n * @param {Array|string} list The list or string to slice\n * @return {Array|string} The sliced list or string\n * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceTo|sliceTo}\n * @example\n *\n * RA.sliceFrom(1, [1, 2, 3]); //=> [2, 3]\n */\nvar sliceFrom = (0, _ramda.slice)(_ramda.__, Infinity);\nvar _default = sliceFrom;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns the elements of the given list or string (or object with a slice method)\n * to toIndex (exclusive).\n * Dispatches to the slice method of the second argument, if present.\n *\n * @func sliceTo\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.16.0|v1.16.0}\n * @category List\n * @sig Number -> [a] -> [a]\n * @param {number} toIndex The end index (exclusive)\n * @param {Array|string} list The list or string to slice\n * @return {Array|string} The sliced list or string\n * @see {@link http://ramdajs.com/docs/#slice|R.slice}, {@link RA.sliceFrom|sliceFrom}\n * @example\n *\n * RA.sliceTo(2, [1, 2, 3]); //=> [1, 2]\n */\nvar sliceTo = (0, _ramda.slice)(0);\nvar _default = sliceTo;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Spreads object under property path onto provided object.\n * It's like {@link RA.flattenPath|flattenPath}, but removes object under the property path.\n *\n * @func spreadPath\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {!Array.<string|number>} path The property path to spread\n * @param {!Object} obj The provided object\n * @return {!Object} The result of the spread\n * @see {@link RA.spreadProp|spreadProp}, {@link RA.flattenPath|flattenPath}\n * @example\n *\n * RA.spreadPath(\n * ['b1', 'b2'],\n * { a: 1, b1: { b2: { c: 3, d: 4 } } }\n * ); // => { a: 1, c: 3, d: 4, b1: {} };\n */\nvar spreadPath = (0, _ramda.curryN)(2, (0, _ramda.converge)(_ramda.merge, [_ramda.dissocPath, (0, _ramda.pathOr)({})]));\nvar _default = spreadPath;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _spreadPath = _interopRequireDefault(require(\"./spreadPath\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Spreads object under property onto provided object.\n * It's like {@link RA.flattenProp|flattenProp}, but removes object under the property.\n *\n * @func spreadProp\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.19.0|v1.19.0}\n * @category Object\n * @typedef Idx = String | Int\n * @sig Idx -> {k: v} -> {k: v}\n * @param {!string|number} prop The property to spread\n * @param {!Object} obj The provided object\n * @return {!Object} The result of the spread\n * @see {@link RA.spreadPath|spreadPath}, {@link RA.flattenProp|flattenProp}\n * @example\n *\n * RA.spreadProp('b', { a: 1, b: { c: 3, d: 4 } }); // => { a: 1, c: 3, d: 4 };\n */\nvar spreadProp = (0, _ramda.curry)(function (prop, obj) {\n return (0, _spreadPath[\"default\"])((0, _ramda.of)(prop), obj);\n});\nvar _default = spreadProp;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n/**\n * A function that returns new empty array on every call.\n *\n * @func stubArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> Array\n * @return {Array} New empty array\n * @example\n *\n * RA.stubArray(); //=> []\n * RA.stubArray(1, 2, 3); //=> []\n */\nvar stubArray = function stubArray() {\n return [];\n};\n\nvar _default = stubArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * A function that returns `null`.\n *\n * @func stubNull\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.6.0|v1.6.0}\n * @category Function\n * @sig ... -> null\n * @return {null}\n * @example\n *\n * RA.stubNull(); //=> null\n * RA.stubNull(1, 2, 3); //=> null\n */\nvar stubNull = (0, _ramda.always)(null);\nvar _default = stubNull;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\n/**\n * This function returns a new empty object.\n *\n * @func stubObj\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> Object\n * @aliases stubObject\n * @return {Object} Returns the new empty object.\n * @example\n *\n * RA.stubObj(); //=> {}\n * RA.stubObj(1, 2, 3); //=> {}\n */\nvar stubObj = function stubObj() {\n return {};\n};\n\nvar _default = stubObj;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * A function that returns empty string.\n *\n * @func stubString\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.1.0|v2.1.0}\n * @category Function\n * @sig ... -> String\n * @return {string} The empty string\n * @example\n *\n * RA.stubString(); //=> ''\n * RA.stubString(1, 2, 3); //=> ''\n */\nvar stubString = (0, _ramda.always)('');\nvar _default = stubString;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * A function that returns `undefined`.\n *\n * @func stubUndefined\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.0.0|v1.0.0}\n * @category Function\n * @sig ... -> undefined\n * @return {undefined}\n * @example\n *\n * RA.stubUndefined(); //=> undefined\n * RA.stubUndefined(1, 2, 3); //=> undefined\n */\nvar stubUndefined = (0, _ramda.always)(void 0); // eslint-disable-line no-void\n\nvar _default = stubUndefined;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Subtracts its first argument from its second argument.\n *\n * @func subtractNum\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category Math\n * @sig Number -> Number -> Number\n * @param {number} subtrahend the number to subtract\n * @param {number} minuend the number to subtract from\n * @return {number} A number representing the difference of subtracting the subtrahend from the minuend\n * @example\n *\n * RA.subtractNum(3, 5); //=> 2\n */\nvar subtractNum = (0, _ramda.flip)(_ramda.subtract);\nvar _default = subtractNum;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Composable shortcut for `Promise.then`.\n * The thenP function returns a Promise. It takes two arguments: a callback function for the success of the Promise\n * and the promise instance itself.\n *\n * @func thenP\n * @memberOf RA\n * @aliases then\n * @since {@link https://char0n.github.io/ramda-adjunct/2.8.0|v2.8.0}\n * @deprecated since v2.12.0; available in ramda@0.26.0 as R.then\n * @category Function\n * @sig (a -> Promise b | b) -> Promise b\n * @param {Function} onFulfilled A Function called if the Promise is fulfilled. This function has one argument, the fulfillment value\n * @param {Promise} promise Any Promise or Thenable object\n * @return {Promise} A Promise in the pending status\n\n * @see {@link RA.resolveP|resolveP}, {@link RA.rejectP|rejectP}, {@link RA.allP|allP}\n * @example\n *\n * const promise = Promise.resolve(1);\n * const add1 = v => v + 1;\n *\n * RA.thenP(add1, promise); // => Promise(2)\n */\nvar thenP = (0, _ramda.invoker)(1, 'then');\nvar _default = thenP;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.fromPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _isIterable = _interopRequireDefault(require(\"./isIterable\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nvar _Array = _interopRequireDefault(require(\"./internal/polyfills/Array.from\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar fromPolyfill = (0, _curry[\"default\"])(_Array[\"default\"]);\nexports.fromPolyfill = fromPolyfill;\nvar fromArray = (0, _isFunction[\"default\"])(Array.from) ? (0, _curry[\"default\"])(Array.from) : fromPolyfill;\n/**\n * Converts value to an array.\n *\n * @func toArray\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category List\n * @sig * -> [a]\n * @param {*} val The value to convert\n * @return {Array}\n * @example\n *\n * RA.toArray([1, 2]); //=> [1, 2]\n * RA.toArray({'foo': 1, 'bar': 2}); //=> [1, 2]\n * RA.toArray('abc'); //=> ['a', 'b', 'c']\n * RA.toArray(1); //=> []\n * RA.toArray(null); //=> []\n */\n\nvar toArray = (0, _ramda.ifElse)(_isIterable[\"default\"], fromArray, _ramda.values);\nvar _default = toArray;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _contained = _interopRequireDefault(require(\"./contained\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Removes specified characters from the end of a string.\n *\n * @func trimCharsEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.25.0|v2.25.0}\n * @category String\n * @sig String -> String\n * @param {string} chars The characters to trim\n * @param {string} value The string to trim\n * @return {string} Returns the trimmed string.\n * @example\n *\n * RA.trimCharsEnd('_-', '-_-abc-_-'); //=> '-_-abc'\n */\nvar trimCharsEnd = (0, _ramda.curry)(function (chars, value) {\n return (0, _ramda.pipe)((0, _ramda.split)(''), (0, _ramda.dropLastWhile)((0, _contained[\"default\"])(chars)), (0, _ramda.join)(''))(value);\n});\nvar _default = trimCharsEnd;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _contained = _interopRequireDefault(require(\"./contained\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Removes specified characters from the beginning of a string.\n *\n * @func trimCharsStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.24.0|v2.24.0}\n * @category String\n * @sig String -> String\n * @param {string} chars The characters to trim\n * @param {string} value The string to trim\n * @return {string} Returns the trimmed string.\n * @example\n *\n * RA.trimCharsStart('_-', '-_-abc-_-'); //=> 'abc-_-'\n */\nvar trimCharsStart = (0, _ramda.curry)(function (chars, value) {\n return (0, _ramda.pipe)((0, _ramda.split)(''), (0, _ramda.dropWhile)((0, _contained[\"default\"])(chars)), (0, _ramda.join)(''))(value);\n});\nvar _default = trimCharsStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.trimEndInvoker = exports.trimEndPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.trimEnd\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar trimEndPolyfill = _String[\"default\"];\nexports.trimEndPolyfill = trimEndPolyfill;\nvar trimEndInvoker = (0, _ramda.invoker)(0, 'trimEnd');\n/**\n * Removes whitespace from the end of a string.\n *\n * @func trimEnd\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> String\n * @param {string} value String value to have the whitespace removed from the end\n * @return {string} A new string representing the calling string stripped of whitespace from its end (right end).\n * @see {@link RA.trimEnd|trimEnd}\n * @example\n *\n * RA.trimEnd('abc '); //=> 'abc'\n */\n\nexports.trimEndInvoker = trimEndInvoker;\nvar trimEnd = (0, _isFunction[\"default\"])(String.prototype.trimEnd) ? trimEndInvoker : trimEndPolyfill;\nvar _default = trimEnd;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.trimStartInvoker = exports.trimStartPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _String = _interopRequireDefault(require(\"./internal/polyfills/String.trimStart\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar trimStartPolyfill = _String[\"default\"];\nexports.trimStartPolyfill = trimStartPolyfill;\nvar trimStartInvoker = (0, _ramda.invoker)(0, 'trimStart');\n/**\n * Removes whitespace from the beginning of a string.\n *\n * @func trimStart\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @category String\n * @sig String -> String\n * @param {string} value String value to have the whitespace removed from the beginning\n * @return {string} A new string representing the calling string stripped of whitespace from its beginning (left end).\n * @example\n *\n * RA.trimStart(' abc'); //=> 'abc'\n */\n\nexports.trimStartInvoker = trimStartInvoker;\nvar trimStart = (0, _isFunction[\"default\"])(String.prototype.trimStart) ? trimStartInvoker : trimStartPolyfill;\nvar _default = trimStart;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = exports.truncPolyfill = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _curry = _interopRequireDefault(require(\"ramda/src/internal/_curry1\"));\n\nvar _Math = _interopRequireDefault(require(\"./internal/polyfills/Math.trunc\"));\n\nvar _isFunction = _interopRequireDefault(require(\"./isFunction\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar truncPolyfill = (0, _curry[\"default\"])(_Math[\"default\"]);\n/**\n * Returns the integer part of a number by removing any fractional digits.\n *\n * @func trunc\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/2.15.0|v2.15.0}\n * @category Math\n * @sig Number | String -> Number\n * @param {number|string} number The number to trunc\n * @return {number} The integer part of the given number\n * @example\n *\n * RA.trunc(13.37); //=> 13\n * RA.trunc(42.84); //=> 42\n * RA.trunc(0.123); //=> 0\n * RA.trunc(-0.123); //=> -0\n * RA.trunc('-1.123'); //=> -1\n * RA.trunc(NaN); //=> NaN\n * RA.trunc('foo'); //=> NaN\n */\n\nexports.truncPolyfill = truncPolyfill;\nvar trunc = (0, _isFunction[\"default\"])(Math.trunc) ? (0, _curry[\"default\"])((0, _ramda.bind)(Math.trunc, Math)) : truncPolyfill;\nvar _default = trunc;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\nvar _lengthEq = _interopRequireDefault(require(\"./lengthEq\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n/**\n * Creates a new list out of the supplied object by applying the function to each key/value pairing.\n *\n * @func unzipObjWith\n * @memberOf RA\n * @category Object\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig (v, k) => [k, v] -> { k: v } -> [[k], [v]]\n * @param {Function} fn The function to transform each value-key pair\n * @param {Object} obj Object to unzip\n * @return {Array} A pair of tw lists: a list of keys and a list of values\n * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.zipObjWith|zipObjWith}\n * @example\n *\n * RA.unzipObjWith((v, k) => [`new${k.toUpperCase()}`, 2 * v], { a: 1, b: 2, c: 3 });\n * //=> [['newA', 'newB', 'newC'], [2, 4, 6]]\n */\nvar unzipObjWith = (0, _ramda.curryN)(2, function (fn, obj) {\n return (0, _ramda.pipe)(_ramda.toPairs, (0, _ramda.map)((0, _ramda.pipe)(_ramda.flip, _ramda.apply)(fn)), _ramda.transpose, (0, _ramda.when)((0, _lengthEq[\"default\"])(0), function () {\n return [[], []];\n }))(obj);\n});\nvar _default = unzipObjWith;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n * Returns the defaultValue if \"view\" is null, undefined or NaN; otherwise the \"view\" is returned.\n *\n * @func viewOr\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.13.0|1.13.0}\n * @category Object\n * @typedef Lens s b = Functor f => (b -> f b) -> s -> f s\n * @sig a -> Lens s b -> s -> b | a\n * @see {@link http://ramdajs.com/docs/#view|R.view}\n * @param {*} defaultValue The default value\n * @param {Function} lens Van Laarhoven lens\n * @param {*} data The data structure\n * @returns {*} \"view\" or defaultValue\n *\n * @example\n *\n * RA.viewOr('N/A', R.lensProp('x'), {}); // => 'N/A'\n * RA.viewOr('N/A', R.lensProp('x'), { x: 1 }); // => 1\n * RA.viewOr('some', R.lensProp('y'), { y: null }); // => 'some'\n * RA.viewOr('some', R.lensProp('y'), { y: false }); // => false\n */\nvar viewOr = (0, _ramda.curryN)(3, function (defaultValue, lens, data) {\n return (0, _ramda.defaultTo)(defaultValue, (0, _ramda.view)(lens, data));\n});\nvar _default = viewOr;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.\n * This allows us to pre-bind the configuration in advance and use the weaved function\n * without need to explicitly pass the configuration on every call.\n *\n * @func weave\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.7.0|v1.7.0}\n * @category Function\n * @sig (*... -> *) -> * -> (*... -> *)\n * @param {Function} fn The function to weave\n * @param {*} config The configuration to weave into fn\n * @return {Function} Auto-curried weaved function\n * @example\n *\n * const { Reader: reader } = require('monet');\n *\n * const log = value => reader(\n * config => config.log(value)\n * );\n *\n * // no weaving\n * log('test').run(console); //=> prints 'test'\n *\n * // weaving\n * const wlog = RA.weave(log, console);\n * wlog('test'); //=> prints 'test'\n */\nvar weave = (0, _ramda.curryN)(2, function (fn, config) {\n return (0, _ramda.curryN)(fn.length, function () {\n return fn.apply(void 0, arguments).run(config);\n });\n});\nvar _default = weave;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Weaves a configuration into function returning the runnable monad like `Reader` or `Free`.\n * This allows us to pre-bind the configuration in advance and use the weaved function\n * without need to explicitly pass the configuration on every call.\n *\n * @func weaveLazy\n * @memberOf RA\n * @since {@link https://char0n.github.io/ramda-adjunct/1.10.0|v1.10.0}\n * @category Function\n * @sig (*... -> *) -> (* -> *) -> (*... -> *)\n * @param {Function} fn The function to weave\n * @param {Function} configAccessor The function that returns the configuration object\n * @return {Function} Auto-curried weaved function\n * @example\n *\n * const { Reader: reader } = require('monet');\n *\n * const log = value => reader(\n * config => config.log(value)\n * );\n *\n * const consoleAccessor = R.always(console);\n *\n * // no weaving\n * log('test').run(console); //=> prints 'test'\n *\n * // weaving\n * const wlog = RA.weaveLazy(log, consoleAccessor);\n * wlog('test'); //=> prints 'test'\n */\nvar weaveLazy = (0, _ramda.curryN)(2, function (fn, configAccessor) {\n return (0, _ramda.curryN)(fn.length, function () {\n return fn.apply(void 0, arguments).run(configAccessor());\n });\n});\nvar _default = weaveLazy;\nexports[\"default\"] = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _ramda = require(\"ramda\");\n\n/**\n * Creates a new object out of a list of keys and a list of values by applying the function\n * to each equally-positioned pair in the lists.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n *\n * @func zipObjWith\n * @memberOf RA\n * @category Object\n * @since {@link https://char0n.github.io/ramda-adjunct/2.22.0|v2.22.0}\n * @sig (b, a) -> [k, v] -> [a] -> [b] -> { k: v }\n * @param {Function} fn The function to transform each value-key pair\n * @param {Array} keys Array to transform into the properties on the output object\n * @param {Array} values Array to transform into the values on the output object\n * @return {Object} The object made by pairing up and transforming same-indexed elements of `keys` and `values`.\n * @see {@link https://ramdajs.com/docs/#zipObj|zipObj}, {@link RA.unzipObjWith|unzipObjWith}\n * @example\n *\n * RA.zipObjWith((value, key) => [key, `${key}${value + 1}`]), ['a', 'b', 'c'], [1, 2, 3]);\n * // => { a: 'a2', b: 'b3', c: 'c4' }\n */\nvar zipObjWith = (0, _ramda.curryN)(3, function (fn, keys, values) {\n return (0, _ramda.pipe)(_ramda.zip, (0, _ramda.map)((0, _ramda.apply)(fn)), _ramda.fromPairs)(values, keys);\n});\nvar _default = zipObjWith;\nexports[\"default\"] = _default;","\n\n/**\n * A function that always returns `false`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.T\n * @example\n *\n * R.F(); //=> false\n */\nvar F = function () {\n return false;\n};\nmodule.exports = F;","\n\n/**\n * A function that always returns `true`. Any passed in parameters are ignored.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig * -> Boolean\n * @param {*}\n * @return {Boolean}\n * @see R.F\n * @example\n *\n * R.T(); //=> true\n */\nvar T = function () {\n return true;\n};\nmodule.exports = T;","/**\n * A special placeholder value used to specify \"gaps\" within curried functions,\n * allowing partial application of any combination of arguments, regardless of\n * their positions.\n *\n * If `g` is a curried ternary function and `_` is `R.__`, the following are\n * equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2, _)(1, 3)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @name __\n * @constant\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @example\n *\n * const greet = R.replace('{name}', R.__, 'Hello, {name}!');\n * greet('Alice'); //=> 'Hello, Alice!'\n */\nmodule.exports = { '@@functional/placeholder': true };","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Adds two values.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a\n * @param {Number} b\n * @return {Number}\n * @see R.subtract\n * @example\n *\n * R.add(2, 3); //=> 5\n * R.add(7)(10); //=> 17\n */\n\n\nvar add = /*#__PURE__*/_curry2(function add(a, b) {\n return Number(a) + Number(b);\n});\nmodule.exports = add;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Creates a new list iteration function from an existing one by adding two new\n * parameters to its callback function: the current index, and the entire list.\n *\n * This would turn, for instance, [`R.map`](#map) function into one that\n * more closely resembles `Array.prototype.map`. Note that this will only work\n * for functions in which the iteration callback function is the first\n * parameter, and where the list is the last parameter. (This latter might be\n * unimportant if the list parameter is not used.)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Function\n * @category List\n * @sig ((a ... -> b) ... -> [a] -> *) -> ((a ..., Int, [a] -> b) ... -> [a] -> *)\n * @param {Function} fn A list iteration function that does not pass index or list to its callback\n * @return {Function} An altered list iteration function that passes (item, index, list) to its callback\n * @example\n *\n * const mapIndexed = R.addIndex(R.map);\n * mapIndexed((val, idx) => idx + '-' + val, ['f', 'o', 'o', 'b', 'a', 'r']);\n * //=> ['0-f', '1-o', '2-o', '3-b', '4-a', '5-r']\n */\n\n\nvar addIndex = /*#__PURE__*/_curry1(function addIndex(fn) {\n return curryN(fn.length, function () {\n var idx = 0;\n var origFn = arguments[0];\n var list = arguments[arguments.length - 1];\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = function () {\n var result = origFn.apply(this, _concat(arguments, [idx, list]));\n idx += 1;\n return result;\n };\n return fn.apply(this, args);\n });\n});\nmodule.exports = addIndex;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Applies a function to the value at the given index of an array, returning a\n * new copy of the array with the element at the given index replaced with the\n * result of the function application.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> (a -> a) -> [a] -> [a]\n * @param {Number} idx The index.\n * @param {Function} fn The function to apply.\n * @param {Array|Arguments} list An array-like object whose value\n * at the supplied index will be replaced.\n * @return {Array} A copy of the supplied array-like object with\n * the element at index `idx` replaced with the value\n * returned by applying `fn` to the existing element.\n * @see R.update\n * @example\n *\n * R.adjust(1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'B', 'c', 'd']\n * R.adjust(-1, R.toUpper, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c', 'D']\n * @symb R.adjust(-1, f, [a, b]) = [a, f(b)]\n * @symb R.adjust(0, f, [a, b]) = [f(a), b]\n */\n\n\nvar adjust = /*#__PURE__*/_curry3(function adjust(idx, fn, list) {\n if (idx >= list.length || idx < -list.length) {\n return list;\n }\n var start = idx < 0 ? list.length : 0;\n var _idx = start + idx;\n var _list = _concat(list);\n _list[_idx] = fn(list[_idx]);\n return _list;\n});\nmodule.exports = adjust;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xall = /*#__PURE__*/require('./internal/_xall');\n\n/**\n * Returns `true` if all elements of the list match the predicate, `false` if\n * there are any that don't.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by every element, `false`\n * otherwise.\n * @see R.any, R.none, R.transduce\n * @example\n *\n * const equals3 = R.equals(3);\n * R.all(equals3)([3, 3, 3, 3]); //=> true\n * R.all(equals3)([3, 3, 1, 3]); //=> false\n */\n\n\nvar all = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['all'], _xall, function all(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (!fn(list[idx])) {\n return false;\n }\n idx += 1;\n }\n return true;\n}));\nmodule.exports = all;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar max = /*#__PURE__*/require('./max');\n\nvar pluck = /*#__PURE__*/require('./pluck');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if every one of the provided predicates is satisfied\n * by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.anyPass\n * @example\n *\n * const isQueen = R.propEq('rank', 'Q');\n * const isSpade = R.propEq('suit', '♠︎');\n * const isQueenOfSpades = R.allPass([isQueen, isSpade]);\n *\n * isQueenOfSpades({rank: 'Q', suit: '♣︎'}); //=> false\n * isQueenOfSpades({rank: 'Q', suit: '♠︎'}); //=> true\n */\n\n\nvar allPass = /*#__PURE__*/_curry1(function allPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (!preds[idx].apply(this, arguments)) {\n return false;\n }\n idx += 1;\n }\n return true;\n });\n});\nmodule.exports = allPass;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Returns a function that always returns the given value. Note that for\n * non-primitives the value returned is a reference to the original value.\n *\n * This function is known as `const`, `constant`, or `K` (for K combinator) in\n * other languages and libraries.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> (* -> a)\n * @param {*} val The value to wrap in a function\n * @return {Function} A Function :: * -> val.\n * @example\n *\n * const t = R.always('Tee');\n * t(); //=> 'Tee'\n */\n\n\nvar always = /*#__PURE__*/_curry1(function always(val) {\n return function () {\n return val;\n };\n});\nmodule.exports = always;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if both arguments are `true`; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if it is falsy, otherwise the second argument.\n * @see R.both\n * @example\n *\n * R.and(true, true); //=> true\n * R.and(true, false); //=> false\n * R.and(false, true); //=> false\n * R.and(false, false); //=> false\n */\n\n\nvar and = /*#__PURE__*/_curry2(function and(a, b) {\n return a && b;\n});\nmodule.exports = and;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xany = /*#__PURE__*/require('./internal/_xany');\n\n/**\n * Returns `true` if at least one of the elements of the list match the predicate,\n * `false` otherwise.\n *\n * Dispatches to the `any` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is satisfied by at least one element, `false`\n * otherwise.\n * @see R.all, R.none, R.transduce\n * @example\n *\n * const lessThan0 = R.flip(R.lt)(0);\n * const lessThan2 = R.flip(R.lt)(2);\n * R.any(lessThan0)([1, 2]); //=> false\n * R.any(lessThan2)([1, 2]); //=> true\n */\n\n\nvar any = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['any'], _xany, function any(fn, list) {\n var idx = 0;\n while (idx < list.length) {\n if (fn(list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}));\nmodule.exports = any;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar max = /*#__PURE__*/require('./max');\n\nvar pluck = /*#__PURE__*/require('./pluck');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Takes a list of predicates and returns a predicate that returns true for a\n * given list of arguments if at least one of the provided predicates is\n * satisfied by those arguments.\n *\n * The function returned is a curried function whose arity matches that of the\n * highest-arity predicate.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Logic\n * @sig [(*... -> Boolean)] -> (*... -> Boolean)\n * @param {Array} predicates An array of predicates to check\n * @return {Function} The combined predicate\n * @see R.allPass\n * @example\n *\n * const isClub = R.propEq('suit', '♣');\n * const isSpade = R.propEq('suit', '♠');\n * const isBlackCard = R.anyPass([isClub, isSpade]);\n *\n * isBlackCard({rank: '10', suit: '♣'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♠'}); //=> true\n * isBlackCard({rank: 'Q', suit: '♦'}); //=> false\n */\n\n\nvar anyPass = /*#__PURE__*/_curry1(function anyPass(preds) {\n return curryN(reduce(max, 0, pluck('length', preds)), function () {\n var idx = 0;\n var len = preds.length;\n while (idx < len) {\n if (preds[idx].apply(this, arguments)) {\n return true;\n }\n idx += 1;\n }\n return false;\n });\n});\nmodule.exports = anyPass;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar map = /*#__PURE__*/require('./map');\n\n/**\n * ap applies a list of functions to a list of values.\n *\n * Dispatches to the `ap` method of the second argument, if present. Also\n * treats curried functions as applicatives.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig [a -> b] -> [a] -> [b]\n * @sig Apply f => f (a -> b) -> f a -> f b\n * @sig (r -> a -> b) -> (r -> a) -> (r -> b)\n * @param {*} applyF\n * @param {*} applyX\n * @return {*}\n * @example\n *\n * R.ap([R.multiply(2), R.add(3)], [1,2,3]); //=> [2, 4, 6, 4, 5, 6]\n * R.ap([R.concat('tasty '), R.toUpper], ['pizza', 'salad']); //=> [\"tasty pizza\", \"tasty salad\", \"PIZZA\", \"SALAD\"]\n *\n * // R.ap can also be used as S combinator\n * // when only two functions are passed\n * R.ap(R.concat, R.toUpper)('Ramda') //=> 'RamdaRAMDA'\n * @symb R.ap([f, g], [a, b]) = [f(a), f(b), g(a), g(b)]\n */\n\n\nvar ap = /*#__PURE__*/_curry2(function ap(applyF, applyX) {\n return typeof applyX['fantasy-land/ap'] === 'function' ? applyX['fantasy-land/ap'](applyF) : typeof applyF.ap === 'function' ? applyF.ap(applyX) : typeof applyF === 'function' ? function (x) {\n return applyF(x)(applyX(x));\n } : _reduce(function (acc, f) {\n return _concat(acc, map(f, applyX));\n }, [], applyF);\n});\nmodule.exports = ap;","var _aperture = /*#__PURE__*/require('./internal/_aperture');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xaperture = /*#__PURE__*/require('./internal/_xaperture');\n\n/**\n * Returns a new list, composed of n-tuples of consecutive elements. If `n` is\n * greater than the length of the list, an empty list is returned.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @param {Number} n The size of the tuples to create\n * @param {Array} list The list to split into `n`-length tuples\n * @return {Array} The resulting list of `n`-length tuples\n * @see R.transduce\n * @example\n *\n * R.aperture(2, [1, 2, 3, 4, 5]); //=> [[1, 2], [2, 3], [3, 4], [4, 5]]\n * R.aperture(3, [1, 2, 3, 4, 5]); //=> [[1, 2, 3], [2, 3, 4], [3, 4, 5]]\n * R.aperture(7, [1, 2, 3, 4, 5]); //=> []\n */\n\n\nvar aperture = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xaperture, _aperture));\nmodule.exports = aperture;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a new list containing the contents of the given list, followed by\n * the given element.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The element to add to the end of the new list.\n * @param {Array} list The list of elements to add a new item to.\n * list.\n * @return {Array} A new list containing the elements of the old list followed by `el`.\n * @see R.prepend\n * @example\n *\n * R.append('tests', ['write', 'more']); //=> ['write', 'more', 'tests']\n * R.append('tests', []); //=> ['tests']\n * R.append(['tests'], ['write', 'more']); //=> ['write', 'more', ['tests']]\n */\n\n\nvar append = /*#__PURE__*/_curry2(function append(el, list) {\n return _concat(list, [el]);\n});\nmodule.exports = append;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Applies function `fn` to the argument list `args`. This is useful for\n * creating a fixed-arity function from a variadic function. `fn` should be a\n * bound function if context is significant.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> a) -> [*] -> a\n * @param {Function} fn The function which will be called with `args`\n * @param {Array} args The arguments to call `fn` with\n * @return {*} result The result, equivalent to `fn(...args)`\n * @see R.call, R.unapply\n * @example\n *\n * const nums = [1, 2, 3, -99, 42, 6, 7];\n * R.apply(Math.max, nums); //=> 42\n * @symb R.apply(f, [a, b, c]) = f(a, b, c)\n */\n\n\nvar apply = /*#__PURE__*/_curry2(function apply(fn, args) {\n return fn.apply(this, args);\n});\nmodule.exports = apply;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar apply = /*#__PURE__*/require('./apply');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar max = /*#__PURE__*/require('./max');\n\nvar pluck = /*#__PURE__*/require('./pluck');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\nvar keys = /*#__PURE__*/require('./keys');\n\nvar values = /*#__PURE__*/require('./values');\n\n// Use custom mapValues function to avoid issues with specs that include a \"map\" key and R.map\n// delegating calls to .map\n\n\nfunction mapValues(fn, obj) {\n return keys(obj).reduce(function (acc, key) {\n acc[key] = fn(obj[key]);\n return acc;\n }, {});\n}\n\n/**\n * Given a spec object recursively mapping properties to functions, creates a\n * function producing an object of the same structure, by mapping each property\n * to the result of calling its associated function with the supplied arguments.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig {k: ((a, b, ..., m) -> v)} -> ((a, b, ..., m) -> {k: v})\n * @param {Object} spec an object recursively mapping properties to functions for\n * producing the values for these properties.\n * @return {Function} A function that returns an object of the same structure\n * as `spec', with each property set to the value returned by calling its\n * associated function with the supplied arguments.\n * @see R.converge, R.juxt\n * @example\n *\n * const getMetrics = R.applySpec({\n * sum: R.add,\n * nested: { mul: R.multiply }\n * });\n * getMetrics(2, 4); // => { sum: 6, nested: { mul: 8 } }\n * @symb R.applySpec({ x: f, y: { z: g } })(a, b) = { x: f(a, b), y: { z: g(a, b) } }\n */\nvar applySpec = /*#__PURE__*/_curry1(function applySpec(spec) {\n spec = mapValues(function (v) {\n return typeof v == 'function' ? v : applySpec(v);\n }, spec);\n\n return curryN(reduce(max, 0, pluck('length', values(spec))), function () {\n var args = arguments;\n return mapValues(function (f) {\n return apply(f, args);\n }, spec);\n });\n});\nmodule.exports = applySpec;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Takes a value and applies a function to it.\n *\n * This function is also known as the `thrush` combinator.\n *\n * @func\n * @memberOf R\n * @since v0.25.0\n * @category Function\n * @sig a -> (a -> b) -> b\n * @param {*} x The value\n * @param {Function} f The function to apply\n * @return {*} The result of applying `f` to `x`\n * @example\n *\n * const t42 = R.applyTo(42);\n * t42(R.identity); //=> 42\n * t42(R.add(1)); //=> 43\n */\n\n\nvar applyTo = /*#__PURE__*/_curry2(function applyTo(x, f) {\n return f(x);\n});\nmodule.exports = applyTo;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Makes an ascending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) < fn(b), `1` if fn(b) < fn(a), otherwise `0`\n * @see R.descend\n * @example\n *\n * const byAge = R.ascend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByYoungestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\n\nvar ascend = /*#__PURE__*/_curry3(function ascend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n});\nmodule.exports = ascend;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig String -> a -> {k: v} -> {k: v}\n * @param {String} prop The property name to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except for the changed property.\n * @see R.dissoc, R.pick\n * @example\n *\n * R.assoc('c', 3, {a: 1, b: 2}); //=> {a: 1, b: 2, c: 3}\n */\n\n\nvar assoc = /*#__PURE__*/_curry3(function assoc(prop, val, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n result[prop] = val;\n return result;\n});\nmodule.exports = assoc;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\nvar _isInteger = /*#__PURE__*/require('./internal/_isInteger');\n\nvar assoc = /*#__PURE__*/require('./assoc');\n\nvar isNil = /*#__PURE__*/require('./isNil');\n\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\n\nvar assocPath = /*#__PURE__*/_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n var idx = path[0];\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n if (_isInteger(idx) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[idx] = val;\n return arr;\n } else {\n return assoc(idx, val, obj);\n }\n});\nmodule.exports = assocPath;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar nAry = /*#__PURE__*/require('./nAry');\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 2 parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> c) -> (a, b -> c)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 2.\n * @see R.nAry, R.unary\n * @example\n *\n * const takesThreeArgs = function(a, b, c) {\n * return [a, b, c];\n * };\n * takesThreeArgs.length; //=> 3\n * takesThreeArgs(1, 2, 3); //=> [1, 2, 3]\n *\n * const takesTwoArgs = R.binary(takesThreeArgs);\n * takesTwoArgs.length; //=> 2\n * // Only 2 arguments are passed to the wrapped function\n * takesTwoArgs(1, 2, 3); //=> [1, 2, undefined]\n * @symb R.binary(f)(a, b, c) = f(a, b)\n */\n\n\nvar binary = /*#__PURE__*/_curry1(function binary(fn) {\n return nAry(2, fn);\n});\nmodule.exports = binary;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind = /*#__PURE__*/_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\nmodule.exports = bind;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isFunction = /*#__PURE__*/require('./internal/_isFunction');\n\nvar and = /*#__PURE__*/require('./and');\n\nvar lift = /*#__PURE__*/require('./lift');\n\n/**\n * A function which calls the two provided functions and returns the `&&`\n * of the results.\n * It returns the result of the first function if it is false-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * false-y value.\n *\n * In addition to functions, `R.both` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f A predicate\n * @param {Function} g Another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `&&`s their outputs together.\n * @see R.and\n * @example\n *\n * const gt10 = R.gt(R.__, 10)\n * const lt20 = R.lt(R.__, 20)\n * const f = R.both(gt10, lt20);\n * f(15); //=> true\n * f(30); //=> false\n *\n * R.both(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(false)\n * R.both([false, false, 'a'], [11]); //=> [false, false, 11]\n */\n\n\nvar both = /*#__PURE__*/_curry2(function both(f, g) {\n return _isFunction(f) ? function _both() {\n return f.apply(this, arguments) && g.apply(this, arguments);\n } : lift(and)(f, g);\n});\nmodule.exports = both;","var curry = /*#__PURE__*/require('./curry');\n\n/**\n * Returns the result of calling its first argument with the remaining\n * arguments. This is occasionally useful as a converging function for\n * [`R.converge`](#converge): the first branch can produce a function while the\n * remaining branches produce values to be passed to that function as its\n * arguments.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig (*... -> a),*... -> a\n * @param {Function} fn The function to apply to the remaining arguments.\n * @param {...*} args Any number of positional arguments.\n * @return {*}\n * @see R.apply\n * @example\n *\n * R.call(R.add, 1, 2); //=> 3\n *\n * const indentN = R.pipe(R.repeat(' '),\n * R.join(''),\n * R.replace(/^(?!$)/gm));\n *\n * const format = R.converge(R.call, [\n * R.pipe(R.prop('indent'), indentN),\n * R.prop('value')\n * ]);\n *\n * format({indent: 2, value: 'foo\\nbar\\nbaz\\n'}); //=> ' foo\\n bar\\n baz\\n'\n * @symb R.call(f, a, b) = f(a, b)\n */\n\n\nvar call = /*#__PURE__*/curry(function call(fn) {\n return fn.apply(this, Array.prototype.slice.call(arguments, 1));\n});\nmodule.exports = call;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _makeFlat = /*#__PURE__*/require('./internal/_makeFlat');\n\nvar _xchain = /*#__PURE__*/require('./internal/_xchain');\n\nvar map = /*#__PURE__*/require('./map');\n\n/**\n * `chain` maps a function over a list and concatenates the results. `chain`\n * is also known as `flatMap` in some libraries.\n *\n * Dispatches to the `chain` method of the second argument, if present,\n * according to the [FantasyLand Chain spec](https://github.com/fantasyland/fantasy-land#chain).\n *\n * If second argument is a function, `chain(f, g)(x)` is equivalent to `f(g(x), x)`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain m => (a -> m b) -> m a -> m b\n * @param {Function} fn The function to map with\n * @param {Array} list The list to map over\n * @return {Array} The result of flat-mapping `list` with `fn`\n * @example\n *\n * const duplicate = n => [n, n];\n * R.chain(duplicate, [1, 2, 3]); //=> [1, 1, 2, 2, 3, 3]\n *\n * R.chain(R.append, R.head)([1, 2, 3]); //=> [1, 2, 3, 1]\n */\n\n\nvar chain = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/chain', 'chain'], _xchain, function chain(fn, monad) {\n if (typeof monad === 'function') {\n return function (x) {\n return fn(monad(x))(x);\n };\n }\n return _makeFlat(false)(map(fn, monad));\n}));\nmodule.exports = chain;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Restricts a number to be within a range.\n *\n * Also works for other ordered types such as Strings and Dates.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Relation\n * @sig Ord a => a -> a -> a -> a\n * @param {Number} minimum The lower limit of the clamp (inclusive)\n * @param {Number} maximum The upper limit of the clamp (inclusive)\n * @param {Number} value Value to be clamped\n * @return {Number} Returns `minimum` when `val < minimum`, `maximum` when `val > maximum`, returns `val` otherwise\n * @example\n *\n * R.clamp(1, 10, -5) // => 1\n * R.clamp(1, 10, 15) // => 10\n * R.clamp(1, 10, 4) // => 4\n */\n\n\nvar clamp = /*#__PURE__*/_curry3(function clamp(min, max, value) {\n if (min > max) {\n throw new Error('min must not be greater than max in clamp(min, max, value)');\n }\n return value < min ? min : value > max ? max : value;\n});\nmodule.exports = clamp;","var _clone = /*#__PURE__*/require('./internal/_clone');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Creates a deep copy of the value which may contain (nested) `Array`s and\n * `Object`s, `Number`s, `String`s, `Boolean`s and `Date`s. `Function`s are\n * assigned by reference rather than copied\n *\n * Dispatches to a `clone` method if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {*} -> {*}\n * @param {*} value The object or array to clone\n * @return {*} A deeply cloned copy of `val`\n * @example\n *\n * const objects = [{}, {}, {}];\n * const objectsClone = R.clone(objects);\n * objects === objectsClone; //=> false\n * objects[0] === objectsClone[0]; //=> false\n */\n\n\nvar clone = /*#__PURE__*/_curry1(function clone(value) {\n return value != null && typeof value.clone === 'function' ? value.clone() : _clone(value, [], [], true);\n});\nmodule.exports = clone;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Makes a comparator function out of a function that reports whether the first\n * element is less than the second.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b) -> Boolean) -> ((a, b) -> Number)\n * @param {Function} pred A predicate function of arity two which will return `true` if the first argument\n * is less than the second, `false` otherwise\n * @return {Function} A Function :: a -> b -> Int that returns `-1` if a < b, `1` if b < a, otherwise `0`\n * @example\n *\n * const byAge = R.comparator((a, b) => a.age < b.age);\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByIncreasingAge = R.sort(byAge, people);\n * //=> [{ name: 'Mikhail', age: 62 },{ name: 'Emma', age: 70 }, { name: 'Peter', age: 78 }]\n */\n\n\nvar comparator = /*#__PURE__*/_curry1(function comparator(pred) {\n return function (a, b) {\n return pred(a, b) ? -1 : pred(b, a) ? 1 : 0;\n };\n});\nmodule.exports = comparator;","var lift = /*#__PURE__*/require('./lift');\n\nvar not = /*#__PURE__*/require('./not');\n\n/**\n * Takes a function `f` and returns a function `g` such that if called with the same arguments\n * when `f` returns a \"truthy\" value, `g` returns `false` and when `f` returns a \"falsy\" value `g` returns `true`.\n *\n * `R.complement` may be applied to any functor\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> *) -> (*... -> Boolean)\n * @param {Function} f\n * @return {Function}\n * @see R.not\n * @example\n *\n * const isNotNil = R.complement(R.isNil);\n * isNil(null); //=> true\n * isNotNil(null); //=> false\n * isNil(7); //=> false\n * isNotNil(7); //=> true\n */\n\n\nvar complement = /*#__PURE__*/lift(not);\nmodule.exports = complement;","var pipe = /*#__PURE__*/require('./pipe');\n\nvar reverse = /*#__PURE__*/require('./reverse');\n\n/**\n * Performs right-to-left function composition. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipe\n * @example\n *\n * const classyGreeting = (firstName, lastName) => \"The name's \" + lastName + \", \" + firstName + \" \" + lastName\n * const yellGreeting = R.compose(R.toUpper, classyGreeting);\n * yellGreeting('James', 'Bond'); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.compose(Math.abs, R.add(1), R.multiply(2))(-4) //=> 7\n *\n * @symb R.compose(f, g, h)(a, b) = f(g(h(a, b)))\n */\n\n\nfunction compose() {\n if (arguments.length === 0) {\n throw new Error('compose requires at least one argument');\n }\n return pipe.apply(this, reverse(arguments));\n}\nmodule.exports = compose;","var chain = /*#__PURE__*/require('./chain');\n\nvar compose = /*#__PURE__*/require('./compose');\n\nvar map = /*#__PURE__*/require('./map');\n\n/**\n * Returns the right-to-left Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.composeK(h, g, f)` is equivalent to `R.compose(R.chain(h), R.chain(g), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((y -> m z), (x -> m y), ..., (a -> m b)) -> (a -> m z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.pipeK\n * @deprecated since v0.26.0\n * @example\n *\n * // get :: String -> Object -> Maybe *\n * const get = R.curry((propName, obj) => Maybe(obj[propName]))\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.composeK(\n * R.compose(Maybe.of, R.toUpper),\n * get('state'),\n * get('address'),\n * get('user'),\n * );\n * getStateCode({\"user\":{\"address\":{\"state\":\"ny\"}}}); //=> Maybe.Just(\"NY\")\n * getStateCode({}); //=> Maybe.Nothing()\n * @symb R.composeK(f, g, h)(a) = R.chain(f, R.chain(g, h(a)))\n */\n\n\nfunction composeK() {\n if (arguments.length === 0) {\n throw new Error('composeK requires at least one argument');\n }\n var init = Array.prototype.slice.call(arguments);\n var last = init.pop();\n return compose(compose.apply(this, map(chain, init)), last);\n}\nmodule.exports = composeK;","var pipeP = /*#__PURE__*/require('./pipeP');\n\nvar reverse = /*#__PURE__*/require('./reverse');\n\n/**\n * Performs right-to-left composition of one or more Promise-returning\n * functions. The rightmost function may have any arity; the remaining\n * functions must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((y -> Promise z), (x -> Promise y), ..., (a -> Promise b)) -> (a -> Promise z)\n * @param {...Function} functions The functions to compose\n * @return {Function}\n * @see R.pipeP\n * @deprecated since v0.26.0\n * @example\n *\n * const db = {\n * users: {\n * JOE: {\n * name: 'Joe',\n * followers: ['STEVE', 'SUZY']\n * }\n * }\n * }\n *\n * // We'll pretend to do a db lookup which returns a promise\n * const lookupUser = (userId) => Promise.resolve(db.users[userId])\n * const lookupFollowers = (user) => Promise.resolve(user.followers)\n * lookupUser('JOE').then(lookupFollowers)\n *\n * // followersForUser :: String -> Promise [UserId]\n * const followersForUser = R.composeP(lookupFollowers, lookupUser);\n * followersForUser('JOE').then(followers => console.log('Followers:', followers))\n * // Followers: [\"STEVE\",\"SUZY\"]\n */\n\n\nfunction composeP() {\n if (arguments.length === 0) {\n throw new Error('composeP requires at least one argument');\n }\n return pipeP.apply(this, reverse(arguments));\n}\nmodule.exports = composeP;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar pipeWith = /*#__PURE__*/require('./pipeWith');\n\nvar reverse = /*#__PURE__*/require('./reverse');\n\n/**\n * Performs right-to-left function composition using transforming function. The rightmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of compose is not automatically curried.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((* -> *), [(y -> z), (x -> y), ..., (o -> p), ((a, b, ..., n) -> o)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} ...functions The functions to compose\n * @return {Function}\n * @see R.compose, R.pipeWith\n * @example\n *\n * const composeWhileNotNil = R.composeWith((f, res) => R.isNil(res) ? res : f(res));\n *\n * composeWhileNotNil([R.inc, R.prop('age')])({age: 1}) //=> 2\n * composeWhileNotNil([R.inc, R.prop('age')])({}) //=> undefined\n *\n * @symb R.composeWith(f)([g, h, i])(...args) = f(g, f(h, f(i, ...args)))\n */\n\n\nvar composeWith = /*#__PURE__*/_curry2(function composeWith(xf, list) {\n return pipeWith.apply(this, [xf, reverse(list)]);\n});\nmodule.exports = composeWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\nvar _isFunction = /*#__PURE__*/require('./internal/_isFunction');\n\nvar _isString = /*#__PURE__*/require('./internal/_isString');\n\nvar toString = /*#__PURE__*/require('./toString');\n\n/**\n * Returns the result of concatenating the given lists or strings.\n *\n * Note: `R.concat` expects both arguments to be of the same type,\n * unlike the native `Array.prototype.concat` method. It will throw\n * an error if you `concat` an Array with a non-Array value.\n *\n * Dispatches to the `concat` method of the first argument, if present.\n * Can also concatenate two members of a [fantasy-land\n * compatible semigroup](https://github.com/fantasyland/fantasy-land#semigroup).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @sig String -> String -> String\n * @param {Array|String} firstList The first list\n * @param {Array|String} secondList The second list\n * @return {Array|String} A list consisting of the elements of `firstList` followed by the elements of\n * `secondList`.\n *\n * @example\n *\n * R.concat('ABC', 'DEF'); // 'ABCDEF'\n * R.concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n * R.concat([], []); //=> []\n */\n\n\nvar concat = /*#__PURE__*/_curry2(function concat(a, b) {\n if (_isArray(a)) {\n if (_isArray(b)) {\n return a.concat(b);\n }\n throw new TypeError(toString(b) + ' is not an array');\n }\n if (_isString(a)) {\n if (_isString(b)) {\n return a + b;\n }\n throw new TypeError(toString(b) + ' is not a string');\n }\n if (a != null && _isFunction(a['fantasy-land/concat'])) {\n return a['fantasy-land/concat'](b);\n }\n if (a != null && _isFunction(a.concat)) {\n return a.concat(b);\n }\n throw new TypeError(toString(a) + ' does not have a method named \"concat\" or \"fantasy-land/concat\"');\n});\nmodule.exports = concat;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar map = /*#__PURE__*/require('./map');\n\nvar max = /*#__PURE__*/require('./max');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Returns a function, `fn`, which encapsulates `if/else, if/else, ...` logic.\n * `R.cond` takes a list of [predicate, transformer] pairs. All of the arguments\n * to `fn` are applied to each of the predicates in turn until one returns a\n * \"truthy\" value, at which point `fn` returns the result of applying its\n * arguments to the corresponding transformer. If none of the predicates\n * matches, `fn` returns undefined.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Logic\n * @sig [[(*... -> Boolean),(*... -> *)]] -> (*... -> *)\n * @param {Array} pairs A list of [predicate, transformer]\n * @return {Function}\n * @see R.ifElse, R.unless, R.when\n * @example\n *\n * const fn = R.cond([\n * [R.equals(0), R.always('water freezes at 0°C')],\n * [R.equals(100), R.always('water boils at 100°C')],\n * [R.T, temp => 'nothing special happens at ' + temp + '°C']\n * ]);\n * fn(0); //=> 'water freezes at 0°C'\n * fn(50); //=> 'nothing special happens at 50°C'\n * fn(100); //=> 'water boils at 100°C'\n */\n\n\nvar cond = /*#__PURE__*/_curry1(function cond(pairs) {\n var arity = reduce(max, 0, map(function (pair) {\n return pair[0].length;\n }, pairs));\n return _arity(arity, function () {\n var idx = 0;\n while (idx < pairs.length) {\n if (pairs[idx][0].apply(this, arguments)) {\n return pairs[idx][1].apply(this, arguments);\n }\n idx += 1;\n }\n });\n});\nmodule.exports = cond;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar constructN = /*#__PURE__*/require('./constructN');\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> {*}) -> (* -> {*})\n * @param {Function} fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @see R.invoker\n * @example\n *\n * // Constructor function\n * function Animal(kind) {\n * this.kind = kind;\n * };\n * Animal.prototype.sighting = function() {\n * return \"It's a \" + this.kind + \"!\";\n * }\n *\n * const AnimalConstructor = R.construct(Animal)\n *\n * // Notice we no longer need the 'new' keyword:\n * AnimalConstructor('Pig'); //=> {\"kind\": \"Pig\", \"sighting\": function (){...}};\n *\n * const animalTypes = [\"Lion\", \"Tiger\", \"Bear\"];\n * const animalSighting = R.invoker(0, 'sighting');\n * const sightNewAnimal = R.compose(animalSighting, AnimalConstructor);\n * R.map(sightNewAnimal, animalTypes); //=> [\"It's a Lion!\", \"It's a Tiger!\", \"It's a Bear!\"]\n */\n\n\nvar construct = /*#__PURE__*/_curry1(function construct(Fn) {\n return constructN(Fn.length, Fn);\n});\nmodule.exports = construct;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar curry = /*#__PURE__*/require('./curry');\n\nvar nAry = /*#__PURE__*/require('./nAry');\n\n/**\n * Wraps a constructor function inside a curried function that can be called\n * with the same arguments and returns the same type. The arity of the function\n * returned is specified to allow using variadic constructor functions.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Function\n * @sig Number -> (* -> {*}) -> (* -> {*})\n * @param {Number} n The arity of the constructor function.\n * @param {Function} Fn The constructor function to wrap.\n * @return {Function} A wrapped, curried constructor function.\n * @example\n *\n * // Variadic Constructor function\n * function Salad() {\n * this.ingredients = arguments;\n * }\n *\n * Salad.prototype.recipe = function() {\n * const instructions = R.map(ingredient => 'Add a dollop of ' + ingredient, this.ingredients);\n * return R.join('\\n', instructions);\n * };\n *\n * const ThreeLayerSalad = R.constructN(3, Salad);\n *\n * // Notice we no longer need the 'new' keyword, and the constructor is curried for 3 arguments.\n * const salad = ThreeLayerSalad('Mayonnaise')('Potato Chips')('Ketchup');\n *\n * console.log(salad.recipe());\n * // Add a dollop of Mayonnaise\n * // Add a dollop of Potato Chips\n * // Add a dollop of Ketchup\n */\n\n\nvar constructN = /*#__PURE__*/_curry2(function constructN(n, Fn) {\n if (n > 10) {\n throw new Error('Constructor with greater than ten arguments');\n }\n if (n === 0) {\n return function () {\n return new Fn();\n };\n }\n return curry(nAry(n, function ($0, $1, $2, $3, $4, $5, $6, $7, $8, $9) {\n switch (arguments.length) {\n case 1:\n return new Fn($0);\n case 2:\n return new Fn($0, $1);\n case 3:\n return new Fn($0, $1, $2);\n case 4:\n return new Fn($0, $1, $2, $3);\n case 5:\n return new Fn($0, $1, $2, $3, $4);\n case 6:\n return new Fn($0, $1, $2, $3, $4, $5);\n case 7:\n return new Fn($0, $1, $2, $3, $4, $5, $6);\n case 8:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7);\n case 9:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8);\n case 10:\n return new Fn($0, $1, $2, $3, $4, $5, $6, $7, $8, $9);\n }\n }));\n});\nmodule.exports = constructN;","var _includes = /*#__PURE__*/require('./internal/_includes');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.includes\n * @deprecated since v0.26.0\n * @example\n *\n * R.contains(3, [1, 2, 3]); //=> true\n * R.contains(4, [1, 2, 3]); //=> false\n * R.contains({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.contains([42], [[42]]); //=> true\n * R.contains('ba', 'banana'); //=>true\n */\n\n\nvar contains = /*#__PURE__*/_curry2(_includes);\nmodule.exports = contains;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _map = /*#__PURE__*/require('./internal/_map');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar max = /*#__PURE__*/require('./max');\n\nvar pluck = /*#__PURE__*/require('./pluck');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Accepts a converging function and a list of branching functions and returns\n * a new function. The arity of the new function is the same as the arity of\n * the longest branching function. When invoked, this new function is applied\n * to some arguments, and each branching function is applied to those same\n * arguments. The results of each branching function are passed as arguments\n * to the converging function to produce the return value.\n *\n * @func\n * @memberOf R\n * @since v0.4.2\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [((a, b, ...) -> x1), ((a, b, ...) -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} after A function. `after` will be invoked with the return values of\n * `fn1` and `fn2` as its arguments.\n * @param {Array} functions A list of functions.\n * @return {Function} A new function.\n * @see R.useWith\n * @example\n *\n * const average = R.converge(R.divide, [R.sum, R.length])\n * average([1, 2, 3, 4, 5, 6, 7]) //=> 4\n *\n * const strangeConcat = R.converge(R.concat, [R.toUpper, R.toLower])\n * strangeConcat(\"Yodel\") //=> \"YODELyodel\"\n *\n * @symb R.converge(f, [g, h])(a, b) = f(g(a, b), h(a, b))\n */\n\n\nvar converge = /*#__PURE__*/_curry2(function converge(after, fns) {\n return curryN(reduce(max, 0, pluck('length', fns)), function () {\n var args = arguments;\n var context = this;\n return after.apply(context, _map(function (fn) {\n return fn.apply(context, args);\n }, fns));\n });\n});\nmodule.exports = converge;","var reduceBy = /*#__PURE__*/require('./reduceBy');\n\n/**\n * Counts the elements of a list according to how many match each value of a\n * key generated by the supplied function. Returns an object mapping the keys\n * produced by `fn` to the number of occurrences in the list. Note that all\n * keys are coerced to strings because of how JavaScript objects work.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig (a -> String) -> [a] -> {*}\n * @param {Function} fn The function used to map values to keys.\n * @param {Array} list The list to count elements from.\n * @return {Object} An object mapping keys to number of occurrences in the list.\n * @example\n *\n * const numbers = [1.0, 1.1, 1.2, 2.0, 3.0, 2.2];\n * R.countBy(Math.floor)(numbers); //=> {'1': 3, '2': 2, '3': 1}\n *\n * const letters = ['a', 'b', 'A', 'a', 'B', 'c'];\n * R.countBy(R.toLower)(letters); //=> {'a': 3, 'b': 2, 'c': 1}\n */\n\n\nvar countBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return acc + 1;\n}, 0);\nmodule.exports = countBy;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Returns a curried equivalent of the provided function. The curried function\n * has two unusual capabilities. First, its arguments needn't be provided one\n * at a time. If `f` is a ternary function and `g` is `R.curry(f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (* -> a) -> (* -> a)\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curryN, R.partial\n * @example\n *\n * const addFourNumbers = (a, b, c, d) => a + b + c + d;\n *\n * const curriedAddFourNumbers = R.curry(addFourNumbers);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\n\nvar curry = /*#__PURE__*/_curry1(function curry(fn) {\n return curryN(fn.length, fn);\n});\nmodule.exports = curry;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _curryN = /*#__PURE__*/require('./internal/_curryN');\n\n/**\n * Returns a curried equivalent of the provided function, with the specified\n * arity. The curried function has two unusual capabilities. First, its\n * arguments needn't be provided one at a time. If `g` is `R.curryN(3, f)`, the\n * following are equivalent:\n *\n * - `g(1)(2)(3)`\n * - `g(1)(2, 3)`\n * - `g(1, 2)(3)`\n * - `g(1, 2, 3)`\n *\n * Secondly, the special placeholder value [`R.__`](#__) may be used to specify\n * \"gaps\", allowing partial application of any combination of arguments,\n * regardless of their positions. If `g` is as above and `_` is [`R.__`](#__),\n * the following are equivalent:\n *\n * - `g(1, 2, 3)`\n * - `g(_, 2, 3)(1)`\n * - `g(_, _, 3)(1)(2)`\n * - `g(_, _, 3)(1, 2)`\n * - `g(_, 2)(1)(3)`\n * - `g(_, 2)(1, 3)`\n * - `g(_, 2)(_, 3)(1)`\n *\n * @func\n * @memberOf R\n * @since v0.5.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to curry.\n * @return {Function} A new, curried function.\n * @see R.curry\n * @example\n *\n * const sumArgs = (...args) => R.sum(args);\n *\n * const curriedAddFourNumbers = R.curryN(4, sumArgs);\n * const f = curriedAddFourNumbers(1, 2);\n * const g = f(3);\n * g(4); //=> 10\n */\n\n\nvar curryN = /*#__PURE__*/_curry2(function curryN(length, fn) {\n if (length === 1) {\n return _curry1(fn);\n }\n return _arity(length, _curryN(length, [], fn));\n});\nmodule.exports = curryN;","var add = /*#__PURE__*/require('./add');\n\n/**\n * Decrements its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n - 1\n * @see R.inc\n * @example\n *\n * R.dec(42); //=> 41\n */\n\n\nvar dec = /*#__PURE__*/add(-1);\nmodule.exports = dec;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns the second argument if it is not `null`, `undefined` or `NaN`;\n * otherwise the first argument is returned.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {a} default The default value.\n * @param {b} val `val` will be returned instead of `default` unless `val` is `null`, `undefined` or `NaN`.\n * @return {*} The second value if it is not `null`, `undefined` or `NaN`, otherwise the default value\n * @example\n *\n * const defaultTo42 = R.defaultTo(42);\n *\n * defaultTo42(null); //=> 42\n * defaultTo42(undefined); //=> 42\n * defaultTo42(false); //=> false\n * defaultTo42('Ramda'); //=> 'Ramda'\n * // parseInt('string') results in NaN\n * defaultTo42(parseInt('string')); //=> 42\n */\n\n\nvar defaultTo = /*#__PURE__*/_curry2(function defaultTo(d, v) {\n return v == null || v !== v ? d : v;\n});\nmodule.exports = defaultTo;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Makes a descending comparator function out of a function that returns a value\n * that can be compared with `<` and `>`.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Function\n * @sig Ord b => (a -> b) -> a -> a -> Number\n * @param {Function} fn A function of arity one that returns a value that can be compared\n * @param {*} a The first item to be compared.\n * @param {*} b The second item to be compared.\n * @return {Number} `-1` if fn(a) > fn(b), `1` if fn(b) > fn(a), otherwise `0`\n * @see R.ascend\n * @example\n *\n * const byAge = R.descend(R.prop('age'));\n * const people = [\n * { name: 'Emma', age: 70 },\n * { name: 'Peter', age: 78 },\n * { name: 'Mikhail', age: 62 },\n * ];\n * const peopleByOldestFirst = R.sort(byAge, people);\n * //=> [{ name: 'Peter', age: 78 }, { name: 'Emma', age: 70 }, { name: 'Mikhail', age: 62 }]\n */\n\n\nvar descend = /*#__PURE__*/_curry3(function descend(fn, a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa > bb ? -1 : aa < bb ? 1 : 0;\n});\nmodule.exports = descend;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _Set = /*#__PURE__*/require('./internal/_Set');\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Objects and Arrays are compared in terms of\n * value equality, not reference equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.differenceWith, R.symmetricDifference, R.symmetricDifferenceWith, R.without\n * @example\n *\n * R.difference([1,2,3,4], [7,6,5,4,3]); //=> [1,2]\n * R.difference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5]\n * R.difference([{a: 1}, {b: 2}], [{a: 1}, {c: 3}]) //=> [{b: 2}]\n */\n\n\nvar difference = /*#__PURE__*/_curry2(function difference(first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n var secondLen = second.length;\n var toFilterOut = new _Set();\n\n for (var i = 0; i < secondLen; i += 1) {\n toFilterOut.add(second[i]);\n }\n\n while (idx < firstLen) {\n if (toFilterOut.add(first[idx])) {\n out[out.length] = first[idx];\n }\n idx += 1;\n }\n return out;\n});\nmodule.exports = difference;","var _includesWith = /*#__PURE__*/require('./internal/_includesWith');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Finds the set (i.e. no duplicates) of all elements in the first list not\n * contained in the second list. Duplication is determined according to the\n * value returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` that are not in `list2`.\n * @see R.difference, R.symmetricDifference, R.symmetricDifferenceWith\n * @example\n *\n * const cmp = (x, y) => x.a === y.a;\n * const l1 = [{a: 1}, {a: 2}, {a: 3}];\n * const l2 = [{a: 3}, {a: 4}];\n * R.differenceWith(cmp, l1, l2); //=> [{a: 1}, {a: 2}]\n */\n\n\nvar differenceWith = /*#__PURE__*/_curry3(function differenceWith(pred, first, second) {\n var out = [];\n var idx = 0;\n var firstLen = first.length;\n while (idx < firstLen) {\n if (!_includesWith(pred, first[idx], second) && !_includesWith(pred, first[idx], out)) {\n out.push(first[idx]);\n }\n idx += 1;\n }\n return out;\n});\nmodule.exports = differenceWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a new object that does not contain a `prop` property.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Object\n * @sig String -> {k: v} -> {k: v}\n * @param {String} prop The name of the property to dissociate\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original but without the specified property\n * @see R.assoc, R.omit\n * @example\n *\n * R.dissoc('b', {a: 1, b: 2, c: 3}); //=> {a: 1, c: 3}\n */\n\n\nvar dissoc = /*#__PURE__*/_curry2(function dissoc(prop, obj) {\n var result = {};\n for (var p in obj) {\n result[p] = obj[p];\n }\n delete result[prop];\n return result;\n});\nmodule.exports = dissoc;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isInteger = /*#__PURE__*/require('./internal/_isInteger');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\nvar assoc = /*#__PURE__*/require('./assoc');\n\nvar dissoc = /*#__PURE__*/require('./dissoc');\n\nvar remove = /*#__PURE__*/require('./remove');\n\nvar update = /*#__PURE__*/require('./update');\n\n/**\n * Makes a shallow clone of an object, omitting the property at the given path.\n * Note that this copies and flattens prototype properties onto the new object\n * as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.11.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {k: v} -> {k: v}\n * @param {Array} path The path to the value to omit\n * @param {Object} obj The object to clone\n * @return {Object} A new object without the property at path\n * @see R.assocPath\n * @example\n *\n * R.dissocPath(['a', 'b', 'c'], {a: {b: {c: 42}}}); //=> {a: {b: {}}}\n */\n\n\nvar dissocPath = /*#__PURE__*/_curry2(function dissocPath(path, obj) {\n switch (path.length) {\n case 0:\n return obj;\n case 1:\n return _isInteger(path[0]) && _isArray(obj) ? remove(path[0], 1, obj) : dissoc(path[0], obj);\n default:\n var head = path[0];\n var tail = Array.prototype.slice.call(path, 1);\n if (obj[head] == null) {\n return obj;\n } else if (_isInteger(head) && _isArray(obj)) {\n return update(head, dissocPath(tail, obj[head]), obj);\n } else {\n return assoc(head, dissocPath(tail, obj[head]), obj);\n }\n }\n});\nmodule.exports = dissocPath;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Divides two numbers. Equivalent to `a / b`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a / b`.\n * @see R.multiply\n * @example\n *\n * R.divide(71, 100); //=> 0.71\n *\n * const half = R.divide(R.__, 2);\n * half(42); //=> 21\n *\n * const reciprocal = R.divide(1);\n * reciprocal(4); //=> 0.25\n */\n\n\nvar divide = /*#__PURE__*/_curry2(function divide(a, b) {\n return a / b;\n});\nmodule.exports = divide;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xdrop = /*#__PURE__*/require('./internal/_xdrop');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns all but the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `drop` method).\n *\n * Dispatches to the `drop` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*} A copy of list without the first `n` elements\n * @see R.take, R.transduce, R.dropLast, R.dropWhile\n * @example\n *\n * R.drop(1, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.drop(2, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.drop(3, ['foo', 'bar', 'baz']); //=> []\n * R.drop(4, ['foo', 'bar', 'baz']); //=> []\n * R.drop(3, 'ramda'); //=> 'da'\n */\n\n\nvar drop = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['drop'], _xdrop, function drop(n, xs) {\n return slice(Math.max(0, n), Infinity, xs);\n}));\nmodule.exports = drop;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _dropLast = /*#__PURE__*/require('./internal/_dropLast');\n\nvar _xdropLast = /*#__PURE__*/require('./internal/_xdropLast');\n\n/**\n * Returns a list containing all but the last `n` elements of the given `list`.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements of `list` to skip.\n * @param {Array} list The list of elements to consider.\n * @return {Array} A copy of the list with only the first `list.length - n` elements\n * @see R.takeLast, R.drop, R.dropWhile, R.dropLastWhile\n * @example\n *\n * R.dropLast(1, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.dropLast(2, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.dropLast(3, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(4, ['foo', 'bar', 'baz']); //=> []\n * R.dropLast(3, 'ramda'); //=> 'ra'\n */\n\n\nvar dropLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLast, _dropLast));\nmodule.exports = dropLast;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _dropLastWhile = /*#__PURE__*/require('./internal/_dropLastWhile');\n\nvar _xdropLastWhile = /*#__PURE__*/require('./internal/_xdropLastWhile');\n\n/**\n * Returns a new list excluding all the tailing elements of a given list which\n * satisfy the supplied predicate function. It passes each value from the right\n * to the supplied predicate function, skipping elements until the predicate\n * function returns a `falsy` value. The predicate function is applied to one argument:\n * *(value)*.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} predicate The function to be called on each element\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array without any trailing elements that return `falsy` values from the `predicate`.\n * @see R.takeLastWhile, R.addIndex, R.drop, R.dropWhile\n * @example\n *\n * const lteThree = x => x <= 3;\n *\n * R.dropLastWhile(lteThree, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3, 4]\n *\n * R.dropLastWhile(x => x !== 'd' , 'Ramda'); //=> 'Ramd'\n */\n\n\nvar dropLastWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropLastWhile, _dropLastWhile));\nmodule.exports = dropLastWhile;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xdropRepeatsWith = /*#__PURE__*/require('./internal/_xdropRepeatsWith');\n\nvar dropRepeatsWith = /*#__PURE__*/require('./dropRepeatsWith');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Returns a new list without any consecutively repeating elements.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * R.dropRepeats([1, 1, 1, 2, 3, 4, 4, 2, 2]); //=> [1, 2, 3, 4, 2]\n */\n\n\nvar dropRepeats = /*#__PURE__*/_curry1( /*#__PURE__*/_dispatchable([], /*#__PURE__*/_xdropRepeatsWith(equals), /*#__PURE__*/dropRepeatsWith(equals)));\nmodule.exports = dropRepeats;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xdropRepeatsWith = /*#__PURE__*/require('./internal/_xdropRepeatsWith');\n\nvar last = /*#__PURE__*/require('./last');\n\n/**\n * Returns a new list without any consecutively repeating elements. Equality is\n * determined by applying the supplied predicate to each pair of consecutive elements. The\n * first element in a series of equal elements will be preserved.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} `list` without repeating elements.\n * @see R.transduce\n * @example\n *\n * const l = [1, -1, 1, 3, 4, -4, -4, -5, 5, 3, 3];\n * R.dropRepeatsWith(R.eqBy(Math.abs), l); //=> [1, 3, 4, -5, 3]\n */\n\n\nvar dropRepeatsWith = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xdropRepeatsWith, function dropRepeatsWith(pred, list) {\n var result = [];\n var idx = 1;\n var len = list.length;\n if (len !== 0) {\n result[0] = list[0];\n while (idx < len) {\n if (!pred(last(result), list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n }\n return result;\n}));\nmodule.exports = dropRepeatsWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xdropWhile = /*#__PURE__*/require('./internal/_xdropWhile');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns a new list excluding the leading elements of a given list which\n * satisfy the supplied predicate function. It passes each value to the supplied\n * predicate function, skipping elements while the predicate function returns\n * `true`. The predicate function is applied to one argument: *(value)*.\n *\n * Dispatches to the `dropWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.takeWhile, R.transduce, R.addIndex\n * @example\n *\n * const lteTwo = x => x <= 2;\n *\n * R.dropWhile(lteTwo, [1, 2, 3, 4, 3, 2, 1]); //=> [3, 4, 3, 2, 1]\n *\n * R.dropWhile(x => x !== 'd' , 'Ramda'); //=> 'da'\n */\n\n\nvar dropWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['dropWhile'], _xdropWhile, function dropWhile(pred, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && pred(xs[idx])) {\n idx += 1;\n }\n return slice(idx, Infinity, xs);\n}));\nmodule.exports = dropWhile;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isFunction = /*#__PURE__*/require('./internal/_isFunction');\n\nvar lift = /*#__PURE__*/require('./lift');\n\nvar or = /*#__PURE__*/require('./or');\n\n/**\n * A function wrapping calls to the two functions in an `||` operation,\n * returning the result of the first function if it is truth-y and the result\n * of the second function otherwise. Note that this is short-circuited,\n * meaning that the second function will not be invoked if the first returns a\n * truth-y value.\n *\n * In addition to functions, `R.either` also accepts any fantasy-land compatible\n * applicative functor.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> Boolean) -> (*... -> Boolean)\n * @param {Function} f a predicate\n * @param {Function} g another predicate\n * @return {Function} a function that applies its arguments to `f` and `g` and `||`s their outputs together.\n * @see R.or\n * @example\n *\n * const gt10 = x => x > 10;\n * const even = x => x % 2 === 0;\n * const f = R.either(gt10, even);\n * f(101); //=> true\n * f(8); //=> true\n *\n * R.either(Maybe.Just(false), Maybe.Just(55)); // => Maybe.Just(55)\n * R.either([false, false, 'a'], [11]) // => [11, 11, \"a\"]\n */\n\n\nvar either = /*#__PURE__*/_curry2(function either(f, g) {\n return _isFunction(f) ? function _either() {\n return f.apply(this, arguments) || g.apply(this, arguments);\n } : lift(or)(f, g);\n});\nmodule.exports = either;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _isArguments = /*#__PURE__*/require('./internal/_isArguments');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar _isString = /*#__PURE__*/require('./internal/_isString');\n\n/**\n * Returns the empty value of its argument's type. Ramda defines the empty\n * value of Array (`[]`), Object (`{}`), String (`''`), and Arguments. Other\n * types are supported if they define `<Type>.empty`,\n * `<Type>.prototype.empty` or implement the\n * [FantasyLand Monoid spec](https://github.com/fantasyland/fantasy-land#monoid).\n *\n * Dispatches to the `empty` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> a\n * @param {*} x\n * @return {*}\n * @example\n *\n * R.empty(Just(42)); //=> Nothing()\n * R.empty([1, 2, 3]); //=> []\n * R.empty('unicorns'); //=> ''\n * R.empty({x: 1, y: 2}); //=> {}\n */\n\n\nvar empty = /*#__PURE__*/_curry1(function empty(x) {\n return x != null && typeof x['fantasy-land/empty'] === 'function' ? x['fantasy-land/empty']() : x != null && x.constructor != null && typeof x.constructor['fantasy-land/empty'] === 'function' ? x.constructor['fantasy-land/empty']() : x != null && typeof x.empty === 'function' ? x.empty() : x != null && x.constructor != null && typeof x.constructor.empty === 'function' ? x.constructor.empty() : _isArray(x) ? [] : _isString(x) ? '' : _isObject(x) ? {} : _isArguments(x) ? function () {\n return arguments;\n }() : void 0 // else\n ;\n});\nmodule.exports = empty;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar equals = /*#__PURE__*/require('./equals');\n\nvar takeLast = /*#__PURE__*/require('./takeLast');\n\n/**\n * Checks if a list ends with the provided sublist.\n *\n * Similarly, checks if a string ends with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} suffix\n * @param {*} list\n * @return {Boolean}\n * @see R.startsWith\n * @example\n *\n * R.endsWith('c', 'abc') //=> true\n * R.endsWith('b', 'abc') //=> false\n * R.endsWith(['c'], ['a', 'b', 'c']) //=> true\n * R.endsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\n\nvar endsWith = /*#__PURE__*/_curry2(function (suffix, list) {\n return equals(takeLast(suffix.length, list), suffix);\n});\nmodule.exports = endsWith;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Takes a function and two values in its domain and returns `true` if the\n * values map to the same value in the codomain; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Relation\n * @sig (a -> b) -> a -> a -> Boolean\n * @param {Function} f\n * @param {*} x\n * @param {*} y\n * @return {Boolean}\n * @example\n *\n * R.eqBy(Math.abs, 5, -5); //=> true\n */\n\n\nvar eqBy = /*#__PURE__*/_curry3(function eqBy(f, x, y) {\n return equals(f(x), f(y));\n});\nmodule.exports = eqBy;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Reports whether two objects have the same value, in [`R.equals`](#equals)\n * terms, for the specified property. Useful as a curried predicate.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig k -> {k: v} -> {k: v} -> Boolean\n * @param {String} prop The name of the property to compare\n * @param {Object} obj1\n * @param {Object} obj2\n * @return {Boolean}\n *\n * @example\n *\n * const o1 = { a: 1, b: 2, c: 3, d: 4 };\n * const o2 = { a: 10, b: 20, c: 3, d: 40 };\n * R.eqProps('a', o1, o2); //=> false\n * R.eqProps('c', o1, o2); //=> true\n */\n\n\nvar eqProps = /*#__PURE__*/_curry3(function eqProps(prop, obj1, obj2) {\n return equals(obj1[prop], obj2[prop]);\n});\nmodule.exports = eqProps;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _equals = /*#__PURE__*/require('./internal/_equals');\n\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\n\nvar equals = /*#__PURE__*/_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\nmodule.exports = equals;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a new object by recursively evolving a shallow copy of `object`,\n * according to the `transformation` functions. All non-primitive properties\n * are copied by reference.\n *\n * A `transformation` function will not be invoked if its corresponding key\n * does not exist in the evolved object.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {k: (v -> v)} -> {k: v} -> {k: v}\n * @param {Object} transformations The object specifying transformation functions to apply\n * to the object.\n * @param {Object} object The object to be transformed.\n * @return {Object} The transformed object.\n * @example\n *\n * const tomato = {firstName: ' Tomato ', data: {elapsed: 100, remaining: 1400}, id:123};\n * const transformations = {\n * firstName: R.trim,\n * lastName: R.trim, // Will not get invoked.\n * data: {elapsed: R.add(1), remaining: R.add(-1)}\n * };\n * R.evolve(transformations, tomato); //=> {firstName: 'Tomato', data: {elapsed: 101, remaining: 1399}, id:123}\n */\n\n\nvar evolve = /*#__PURE__*/_curry2(function evolve(transformations, object) {\n var result = object instanceof Array ? [] : {};\n var transformation, key, type;\n for (key in object) {\n transformation = transformations[key];\n type = typeof transformation;\n result[key] = type === 'function' ? transformation(object[key]) : transformation && type === 'object' ? evolve(transformation, object[key]) : object[key];\n }\n return result;\n});\nmodule.exports = evolve;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _filter = /*#__PURE__*/require('./internal/_filter');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xfilter = /*#__PURE__*/require('./internal/_xfilter');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Takes a predicate and a `Filterable`, and returns a new filterable of the\n * same type containing the members of the given filterable which satisfy the\n * given predicate. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * Dispatches to the `filter` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array} Filterable\n * @see R.reject, R.transduce, R.addIndex\n * @example\n *\n * const isEven = n => n % 2 === 0;\n *\n * R.filter(isEven, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.filter(isEven, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\n\nvar filter = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['filter'], _xfilter, function (pred, filterable) {\n return _isObject(filterable) ? _reduce(function (acc, key) {\n if (pred(filterable[key])) {\n acc[key] = filterable[key];\n }\n return acc;\n }, {}, keys(filterable)) :\n // else\n _filter(pred, filterable);\n}));\nmodule.exports = filter;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xfind = /*#__PURE__*/require('./internal/_xfind');\n\n/**\n * Returns the first element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Dispatches to the `find` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.find(R.propEq('a', 2))(xs); //=> {a: 2}\n * R.find(R.propEq('a', 4))(xs); //=> undefined\n */\n\n\nvar find = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['find'], _xfind, function find(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx += 1;\n }\n}));\nmodule.exports = find;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xfindIndex = /*#__PURE__*/require('./internal/_xfindIndex');\n\n/**\n * Returns the index of the first element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1}, {a: 2}, {a: 3}];\n * R.findIndex(R.propEq('a', 2))(xs); //=> 1\n * R.findIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\n\nvar findIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindIndex, function findIndex(fn, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n if (fn(list[idx])) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}));\nmodule.exports = findIndex;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xfindLast = /*#__PURE__*/require('./internal/_xfindLast');\n\n/**\n * Returns the last element of the list which matches the predicate, or\n * `undefined` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> a | undefined\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Object} The element found, or `undefined`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLast(R.propEq('a', 1))(xs); //=> {a: 1, b: 1}\n * R.findLast(R.propEq('a', 4))(xs); //=> undefined\n */\n\n\nvar findLast = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLast, function findLast(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return list[idx];\n }\n idx -= 1;\n }\n}));\nmodule.exports = findLast;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xfindLastIndex = /*#__PURE__*/require('./internal/_xfindLastIndex');\n\n/**\n * Returns the index of the last element of the list which matches the\n * predicate, or `-1` if no element matches.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> Boolean) -> [a] -> Number\n * @param {Function} fn The predicate function used to determine if the element is the\n * desired one.\n * @param {Array} list The array to consider.\n * @return {Number} The index of the element found, or `-1`.\n * @see R.transduce\n * @example\n *\n * const xs = [{a: 1, b: 0}, {a:1, b: 1}];\n * R.findLastIndex(R.propEq('a', 1))(xs); //=> 1\n * R.findLastIndex(R.propEq('a', 4))(xs); //=> -1\n */\n\n\nvar findLastIndex = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xfindLastIndex, function findLastIndex(fn, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n if (fn(list[idx])) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n}));\nmodule.exports = findLastIndex;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _makeFlat = /*#__PURE__*/require('./internal/_makeFlat');\n\n/**\n * Returns a new list by pulling every item out of it (and all its sub-arrays)\n * and putting them in a new array, depth-first.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b]\n * @param {Array} list The array to consider.\n * @return {Array} The flattened list.\n * @see R.unnest\n * @example\n *\n * R.flatten([1, 2, [3, 4], 5, [6, [7, 8, [9, [10, 11], 12]]]]);\n * //=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]\n */\n\n\nvar flatten = /*#__PURE__*/_curry1( /*#__PURE__*/_makeFlat(true));\nmodule.exports = flatten;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Returns a new function much like the supplied one, except that the first two\n * arguments' order is reversed.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((a, b, c, ...) -> z) -> (b -> a -> c -> ... -> z)\n * @param {Function} fn The function to invoke with its first two parameters reversed.\n * @return {*} The result of invoking `fn` with its first two parameters' order reversed.\n * @example\n *\n * const mergeThree = (a, b, c) => [].concat(a, b, c);\n *\n * mergeThree(1, 2, 3); //=> [1, 2, 3]\n *\n * R.flip(mergeThree)(1, 2, 3); //=> [2, 1, 3]\n * @symb R.flip(f)(a, b, c) = f(b, a, c)\n */\n\n\nvar flip = /*#__PURE__*/_curry1(function flip(fn) {\n return curryN(fn.length, function (a, b) {\n var args = Array.prototype.slice.call(arguments, 0);\n args[0] = b;\n args[1] = a;\n return fn.apply(this, args);\n });\n});\nmodule.exports = flip;","var _checkForMethod = /*#__PURE__*/require('./internal/_checkForMethod');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Iterate over an input `list`, calling a provided function `fn` for each\n * element in the list.\n *\n * `fn` receives one argument: *(value)*.\n *\n * Note: `R.forEach` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.forEach` method. For more\n * details on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description\n *\n * Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns\n * the original array. In some libraries this function is named `each`.\n *\n * Dispatches to the `forEach` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig (a -> *) -> [a] -> [a]\n * @param {Function} fn The function to invoke. Receives one argument, `value`.\n * @param {Array} list The list to iterate over.\n * @return {Array} The original list.\n * @see R.addIndex\n * @example\n *\n * const printXPlusFive = x => console.log(x + 5);\n * R.forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]\n * // logs 6\n * // logs 7\n * // logs 8\n * @symb R.forEach(f, [a, b, c]) = [a, b, c]\n */\n\n\nvar forEach = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('forEach', function forEach(fn, list) {\n var len = list.length;\n var idx = 0;\n while (idx < len) {\n fn(list[idx]);\n idx += 1;\n }\n return list;\n}));\nmodule.exports = forEach;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Iterate over an input `object`, calling a provided function `fn` for each\n * key and value in the object.\n *\n * `fn` receives three argument: *(value, key, obj)*.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Object\n * @sig ((a, String, StrMap a) -> Any) -> StrMap a -> StrMap a\n * @param {Function} fn The function to invoke. Receives three argument, `value`, `key`, `obj`.\n * @param {Object} obj The object to iterate over.\n * @return {Object} The original object.\n * @example\n *\n * const printKeyConcatValue = (value, key) => console.log(key + ':' + value);\n * R.forEachObjIndexed(printKeyConcatValue, {x: 1, y: 2}); //=> {x: 1, y: 2}\n * // logs x:1\n * // logs y:2\n * @symb R.forEachObjIndexed(f, {x: a, y: b}) = {x: a, y: b}\n */\n\n\nvar forEachObjIndexed = /*#__PURE__*/_curry2(function forEachObjIndexed(fn, obj) {\n var keyList = keys(obj);\n var idx = 0;\n while (idx < keyList.length) {\n var key = keyList[idx];\n fn(obj[key], key, obj);\n idx += 1;\n }\n return obj;\n});\nmodule.exports = forEachObjIndexed;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Creates a new object from a list key-value pairs. If a key appears in\n * multiple pairs, the rightmost pair is included in the object.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [[k,v]] -> {k: v}\n * @param {Array} pairs An array of two-element arrays that will be the keys and values of the output object.\n * @return {Object} The object made by pairing up `keys` and `values`.\n * @see R.toPairs, R.pair\n * @example\n *\n * R.fromPairs([['a', 1], ['b', 2], ['c', 3]]); //=> {a: 1, b: 2, c: 3}\n */\n\n\nvar fromPairs = /*#__PURE__*/_curry1(function fromPairs(pairs) {\n var result = {};\n var idx = 0;\n while (idx < pairs.length) {\n result[pairs[idx][0]] = pairs[idx][1];\n idx += 1;\n }\n return result;\n});\nmodule.exports = fromPairs;","var _checkForMethod = /*#__PURE__*/require('./internal/_checkForMethod');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar reduceBy = /*#__PURE__*/require('./reduceBy');\n\n/**\n * Splits a list into sub-lists stored in an object, based on the result of\n * calling a String-returning function on each element, and grouping the\n * results according to values returned.\n *\n * Dispatches to the `groupBy` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> String) -> [a] -> {String: [a]}\n * @param {Function} fn Function :: a -> String\n * @param {Array} list The array to group\n * @return {Object} An object with the output of `fn` for keys, mapped to arrays of elements\n * that produced that key when passed to `fn`.\n * @see R.reduceBy, R.transduce\n * @example\n *\n * const byGrade = R.groupBy(function(student) {\n * const score = student.score;\n * return score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A';\n * });\n * const students = [{name: 'Abby', score: 84},\n * {name: 'Eddy', score: 58},\n * // ...\n * {name: 'Jack', score: 69}];\n * byGrade(students);\n * // {\n * // 'A': [{name: 'Dianne', score: 99}],\n * // 'B': [{name: 'Abby', score: 84}]\n * // // ...,\n * // 'F': [{name: 'Eddy', score: 58}]\n * // }\n */\n\n\nvar groupBy = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('groupBy', /*#__PURE__*/reduceBy(function (acc, item) {\n if (acc == null) {\n acc = [];\n }\n acc.push(item);\n return acc;\n}, null)));\nmodule.exports = groupBy;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Takes a list and returns a list of lists where each sublist's elements are\n * all satisfied pairwise comparison according to the provided function.\n * Only adjacent elements are passed to the comparison function.\n *\n * @func\n * @memberOf R\n * @since v0.21.0\n * @category List\n * @sig ((a, a) → Boolean) → [a] → [[a]]\n * @param {Function} fn Function for determining whether two given (adjacent)\n * elements should be in the same group\n * @param {Array} list The array to group. Also accepts a string, which will be\n * treated as a list of characters.\n * @return {List} A list that contains sublists of elements,\n * whose concatenations are equal to the original list.\n * @example\n *\n * R.groupWith(R.equals, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a + 1 === b, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0, 1], [1, 2, 3], [5], [8], [13], [21]]\n *\n * R.groupWith((a, b) => a % 2 === b % 2, [0, 1, 1, 2, 3, 5, 8, 13, 21])\n * //=> [[0], [1, 1], [2], [3, 5], [8], [13, 21]]\n *\n * R.groupWith(R.eqBy(isVowel), 'aestiou')\n * //=> ['ae', 'st', 'iou']\n */\n\n\nvar groupWith = /*#__PURE__*/_curry2(function (fn, list) {\n var res = [];\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n var nextidx = idx + 1;\n while (nextidx < len && fn(list[nextidx - 1], list[nextidx])) {\n nextidx += 1;\n }\n res.push(list.slice(idx, nextidx));\n idx = nextidx;\n }\n return res;\n});\nmodule.exports = groupWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the first argument is greater than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.lt\n * @example\n *\n * R.gt(2, 1); //=> true\n * R.gt(2, 2); //=> false\n * R.gt(2, 3); //=> false\n * R.gt('a', 'z'); //=> false\n * R.gt('z', 'a'); //=> true\n */\n\n\nvar gt = /*#__PURE__*/_curry2(function gt(a, b) {\n return a > b;\n});\nmodule.exports = gt;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the first argument is greater than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.lte\n * @example\n *\n * R.gte(2, 1); //=> true\n * R.gte(2, 2); //=> true\n * R.gte(2, 3); //=> false\n * R.gte('a', 'z'); //=> false\n * R.gte('z', 'a'); //=> true\n */\n\n\nvar gte = /*#__PURE__*/_curry2(function gte(a, b) {\n return a >= b;\n});\nmodule.exports = gte;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar hasPath = /*#__PURE__*/require('./hasPath');\n\n/**\n * Returns whether or not an object has an own property with the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * const hasName = R.has('name');\n * hasName({name: 'alice'}); //=> true\n * hasName({name: 'bob'}); //=> true\n * hasName({}); //=> false\n *\n * const point = {x: 0, y: 0};\n * const pointHas = R.has(R.__, point);\n * pointHas('x'); //=> true\n * pointHas('y'); //=> true\n * pointHas('z'); //=> false\n */\n\n\nvar has = /*#__PURE__*/_curry2(function has(prop, obj) {\n return hasPath([prop], obj);\n});\nmodule.exports = has;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns whether or not an object or its prototype chain has a property with\n * the specified name\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Object\n * @sig s -> {s: x} -> Boolean\n * @param {String} prop The name of the property to check for.\n * @param {Object} obj The object to query.\n * @return {Boolean} Whether the property exists.\n * @example\n *\n * function Rectangle(width, height) {\n * this.width = width;\n * this.height = height;\n * }\n * Rectangle.prototype.area = function() {\n * return this.width * this.height;\n * };\n *\n * const square = new Rectangle(2, 2);\n * R.hasIn('width', square); //=> true\n * R.hasIn('area', square); //=> true\n */\n\n\nvar hasIn = /*#__PURE__*/_curry2(function hasIn(prop, obj) {\n return prop in obj;\n});\nmodule.exports = hasIn;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Returns whether or not a path exists in an object. Only the object's\n * own properties are checked.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> Boolean\n * @param {Array} path The path to use.\n * @param {Object} obj The object to check the path in.\n * @return {Boolean} Whether the path exists.\n * @see R.has\n * @example\n *\n * R.hasPath(['a', 'b'], {a: {b: 2}}); // => true\n * R.hasPath(['a', 'b'], {a: {b: undefined}}); // => true\n * R.hasPath(['a', 'b'], {a: {c: 2}}); // => false\n * R.hasPath(['a', 'b'], {}); // => false\n */\n\n\nvar hasPath = /*#__PURE__*/_curry2(function hasPath(_path, obj) {\n if (_path.length === 0) {\n return false;\n }\n var val = obj;\n var idx = 0;\n while (idx < _path.length) {\n if (_has(_path[idx], val)) {\n val = val[_path[idx]];\n idx += 1;\n } else {\n return false;\n }\n }\n return true;\n});\nmodule.exports = hasPath;","var nth = /*#__PURE__*/require('./nth');\n\n/**\n * Returns the first element of the given list or string. In some libraries\n * this function is named `first`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {Array|String} list\n * @return {*}\n * @see R.tail, R.init, R.last\n * @example\n *\n * R.head(['fi', 'fo', 'fum']); //=> 'fi'\n * R.head([]); //=> undefined\n *\n * R.head('abc'); //=> 'a'\n * R.head(''); //=> ''\n */\n\n\nvar head = /*#__PURE__*/nth(0);\nmodule.exports = head;","var _objectIs = /*#__PURE__*/require('./internal/_objectIs');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns true if its arguments are identical, false otherwise. Values are\n * identical if they reference the same memory. `NaN` is identical to `NaN`;\n * `0` and `-0` are not identical.\n *\n * Note this is merely a curried version of ES6 `Object.is`.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * const o = {};\n * R.identical(o, o); //=> true\n * R.identical(1, 1); //=> true\n * R.identical(1, '1'); //=> false\n * R.identical([], []); //=> false\n * R.identical(0, -0); //=> false\n * R.identical(NaN, NaN); //=> true\n */\n\n\nvar identical = /*#__PURE__*/_curry2(_objectIs);\nmodule.exports = identical;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _identity = /*#__PURE__*/require('./internal/_identity');\n\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\n\nvar identity = /*#__PURE__*/_curry1(_identity);\nmodule.exports = identity;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Creates a function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Logic\n * @sig (*... -> Boolean) -> (*... -> *) -> (*... -> *) -> (*... -> *)\n * @param {Function} condition A predicate function\n * @param {Function} onTrue A function to invoke when the `condition` evaluates to a truthy value.\n * @param {Function} onFalse A function to invoke when the `condition` evaluates to a falsy value.\n * @return {Function} A new function that will process either the `onTrue` or the `onFalse`\n * function depending upon the result of the `condition` predicate.\n * @see R.unless, R.when, R.cond\n * @example\n *\n * const incCount = R.ifElse(\n * R.has('count'),\n * R.over(R.lensProp('count'), R.inc),\n * R.assoc('count', 1)\n * );\n * incCount({}); //=> { count: 1 }\n * incCount({ count: 1 }); //=> { count: 2 }\n */\n\n\nvar ifElse = /*#__PURE__*/_curry3(function ifElse(condition, onTrue, onFalse) {\n return curryN(Math.max(condition.length, onTrue.length, onFalse.length), function _ifElse() {\n return condition.apply(this, arguments) ? onTrue.apply(this, arguments) : onFalse.apply(this, arguments);\n });\n});\nmodule.exports = ifElse;","var add = /*#__PURE__*/require('./add');\n\n/**\n * Increments its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number} n + 1\n * @see R.dec\n * @example\n *\n * R.inc(42); //=> 43\n */\n\n\nvar inc = /*#__PURE__*/add(1);\nmodule.exports = inc;","var _includes = /*#__PURE__*/require('./internal/_includes');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the specified value is equal, in [`R.equals`](#equals)\n * terms, to at least one element of the given list; `false` otherwise.\n * Works also with strings.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Boolean\n * @param {Object} a The item to compare against.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if an equivalent item is in the list, `false` otherwise.\n * @see R.any\n * @example\n *\n * R.includes(3, [1, 2, 3]); //=> true\n * R.includes(4, [1, 2, 3]); //=> false\n * R.includes({ name: 'Fred' }, [{ name: 'Fred' }]); //=> true\n * R.includes([42], [[42]]); //=> true\n * R.includes('ba', 'banana'); //=>true\n */\n\n\nvar includes = /*#__PURE__*/_curry2(_includes);\nmodule.exports = includes;","var reduceBy = /*#__PURE__*/require('./reduceBy');\n\n/**\n * Given a function that generates a key, turns a list of objects into an\n * object indexing the objects by the given key. Note that if multiple\n * objects generate the same value for the indexing key only the last value\n * will be included in the generated object.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> String) -> [{k: v}] -> {k: {k: v}}\n * @param {Function} fn Function :: a -> String\n * @param {Array} array The array of objects to index\n * @return {Object} An object indexing each array element by the given property.\n * @example\n *\n * const list = [{id: 'xyz', title: 'A'}, {id: 'abc', title: 'B'}];\n * R.indexBy(R.prop('id'), list);\n * //=> {abc: {id: 'abc', title: 'B'}, xyz: {id: 'xyz', title: 'A'}}\n */\n\n\nvar indexBy = /*#__PURE__*/reduceBy(function (acc, elem) {\n return elem;\n}, null);\nmodule.exports = indexBy;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _indexOf = /*#__PURE__*/require('./internal/_indexOf');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\n/**\n * Returns the position of the first occurrence of an item in an array, or -1\n * if the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.lastIndexOf\n * @example\n *\n * R.indexOf(3, [1,2,3,4]); //=> 2\n * R.indexOf(10, [1,2,3,4]); //=> -1\n */\n\n\nvar indexOf = /*#__PURE__*/_curry2(function indexOf(target, xs) {\n return typeof xs.indexOf === 'function' && !_isArray(xs) ? xs.indexOf(target) : _indexOf(xs, target, 0);\n});\nmodule.exports = indexOf;","var slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns all but the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.last, R.head, R.tail\n * @example\n *\n * R.init([1, 2, 3]); //=> [1, 2]\n * R.init([1, 2]); //=> [1]\n * R.init([1]); //=> []\n * R.init([]); //=> []\n *\n * R.init('abc'); //=> 'ab'\n * R.init('ab'); //=> 'a'\n * R.init('a'); //=> ''\n * R.init(''); //=> ''\n */\n\n\nvar init = /*#__PURE__*/slice(0, -1);\nmodule.exports = init;","var _includesWith = /*#__PURE__*/require('./internal/_includesWith');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _filter = /*#__PURE__*/require('./internal/_filter');\n\n/**\n * Takes a predicate `pred`, a list `xs`, and a list `ys`, and returns a list\n * `xs'` comprising each of the elements of `xs` which is equal to one or more\n * elements of `ys` according to `pred`.\n *\n * `pred` must be a binary function expecting an element from each list.\n *\n * `xs`, `ys`, and `xs'` are treated as sets, semantically, so ordering should\n * not be significant, but since `xs'` is ordered the implementation guarantees\n * that its values are in the same order as they appear in `xs`. Duplicates are\n * not removed, so `xs'` may contain duplicates if `xs` contains duplicates.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Relation\n * @sig ((a, b) -> Boolean) -> [a] -> [b] -> [a]\n * @param {Function} pred\n * @param {Array} xs\n * @param {Array} ys\n * @return {Array}\n * @see R.intersection\n * @example\n *\n * R.innerJoin(\n * (record, id) => record.id === id,\n * [{id: 824, name: 'Richie Furay'},\n * {id: 956, name: 'Dewey Martin'},\n * {id: 313, name: 'Bruce Palmer'},\n * {id: 456, name: 'Stephen Stills'},\n * {id: 177, name: 'Neil Young'}],\n * [177, 456, 999]\n * );\n * //=> [{id: 456, name: 'Stephen Stills'}, {id: 177, name: 'Neil Young'}]\n */\n\n\nvar innerJoin = /*#__PURE__*/_curry3(function innerJoin(pred, xs, ys) {\n return _filter(function (x) {\n return _includesWith(pred, x, ys);\n }, xs);\n});\nmodule.exports = innerJoin;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Inserts the supplied element into the list, at the specified `index`. _Note that\n\n * this is not destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} index The position to insert the element\n * @param {*} elt The element to insert into the Array\n * @param {Array} list The list to insert into\n * @return {Array} A new Array with `elt` inserted at `index`.\n * @example\n *\n * R.insert(2, 'x', [1,2,3,4]); //=> [1,2,'x',3,4]\n */\n\n\nvar insert = /*#__PURE__*/_curry3(function insert(idx, elt, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n var result = Array.prototype.slice.call(list, 0);\n result.splice(idx, 0, elt);\n return result;\n});\nmodule.exports = insert;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Inserts the sub-list into the list, at the specified `index`. _Note that this is not\n * destructive_: it returns a copy of the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category List\n * @sig Number -> [a] -> [a] -> [a]\n * @param {Number} index The position to insert the sub-list\n * @param {Array} elts The sub-list to insert into the Array\n * @param {Array} list The list to insert the sub-list into\n * @return {Array} A new Array with `elts` inserted starting at `index`.\n * @example\n *\n * R.insertAll(2, ['x','y','z'], [1,2,3,4]); //=> [1,2,'x','y','z',3,4]\n */\n\n\nvar insertAll = /*#__PURE__*/_curry3(function insertAll(idx, elts, list) {\n idx = idx < list.length && idx >= 0 ? idx : list.length;\n return [].concat(Array.prototype.slice.call(list, 0, idx), elts, Array.prototype.slice.call(list, idx));\n});\nmodule.exports = insertAll;","var _includes = /*#__PURE__*/require('./_includes');\n\nvar _Set = /*#__PURE__*/function () {\n\n function _Set() {\n /* globals Set */\n this._nativeSet = typeof Set === 'function' ? new Set() : null;\n this._items = {};\n }\n\n // until we figure out why jsdoc chokes on this\n // @param item The item to add to the Set\n // @returns {boolean} true if the item did not exist prior, otherwise false\n //\n _Set.prototype.add = function (item) {\n return !hasOrAdd(item, true, this);\n };\n\n //\n // @param item The item to check for existence in the Set\n // @returns {boolean} true if the item exists in the Set, otherwise false\n //\n _Set.prototype.has = function (item) {\n return hasOrAdd(item, false, this);\n };\n\n //\n // Combines the logic for checking whether an item is a member of the set and\n // for adding a new item to the set.\n //\n // @param item The item to check or add to the Set instance.\n // @param shouldAdd If true, the item will be added to the set if it doesn't\n // already exist.\n // @param set The set instance to check or add to.\n // @return {boolean} true if the item already existed, otherwise false.\n //\n return _Set;\n}();\n\nfunction hasOrAdd(item, shouldAdd, set) {\n var type = typeof item;\n var prevSize, newSize;\n switch (type) {\n case 'string':\n case 'number':\n // distinguish between +0 and -0\n if (item === 0 && 1 / item === -Infinity) {\n if (set._items['-0']) {\n return true;\n } else {\n if (shouldAdd) {\n set._items['-0'] = true;\n }\n return false;\n }\n }\n // these types can all utilise the native Set\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = {};\n set._items[type][item] = true;\n }\n return false;\n } else if (item in set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][item] = true;\n }\n return false;\n }\n }\n\n case 'boolean':\n // set._items['boolean'] holds a two element array\n // representing [ falseExists, trueExists ]\n if (type in set._items) {\n var bIdx = item ? 1 : 0;\n if (set._items[type][bIdx]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type][bIdx] = true;\n }\n return false;\n }\n } else {\n if (shouldAdd) {\n set._items[type] = item ? [false, true] : [true, false];\n }\n return false;\n }\n\n case 'function':\n // compare functions for reference equality\n if (set._nativeSet !== null) {\n if (shouldAdd) {\n prevSize = set._nativeSet.size;\n set._nativeSet.add(item);\n newSize = set._nativeSet.size;\n return newSize === prevSize;\n } else {\n return set._nativeSet.has(item);\n }\n } else {\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n\n case 'undefined':\n if (set._items[type]) {\n return true;\n } else {\n if (shouldAdd) {\n set._items[type] = true;\n }\n return false;\n }\n\n case 'object':\n if (item === null) {\n if (!set._items['null']) {\n if (shouldAdd) {\n set._items['null'] = true;\n }\n return false;\n }\n return true;\n }\n /* falls through */\n default:\n // reduce the search size of heterogeneous sets by creating buckets\n // for each type.\n type = Object.prototype.toString.call(item);\n if (!(type in set._items)) {\n if (shouldAdd) {\n set._items[type] = [item];\n }\n return false;\n }\n // scan through all previously applied items\n if (!_includes(item, set._items[type])) {\n if (shouldAdd) {\n set._items[type].push(item);\n }\n return false;\n }\n return true;\n }\n}\n\n// A simple Set type that honours R.equals semantics\nmodule.exports = _Set;","function _aperture(n, list) {\n var idx = 0;\n var limit = list.length - (n - 1);\n var acc = new Array(limit >= 0 ? limit : 0);\n while (idx < limit) {\n acc[idx] = Array.prototype.slice.call(list, idx, idx + n);\n idx += 1;\n }\n return acc;\n}\nmodule.exports = _aperture;","function _arity(n, fn) {\n /* eslint-disable no-unused-vars */\n switch (n) {\n case 0:\n return function () {\n return fn.apply(this, arguments);\n };\n case 1:\n return function (a0) {\n return fn.apply(this, arguments);\n };\n case 2:\n return function (a0, a1) {\n return fn.apply(this, arguments);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.apply(this, arguments);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.apply(this, arguments);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.apply(this, arguments);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.apply(this, arguments);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.apply(this, arguments);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.apply(this, arguments);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.apply(this, arguments);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.apply(this, arguments);\n };\n default:\n throw new Error('First argument to _arity must be a non-negative integer no greater than ten');\n }\n}\nmodule.exports = _arity;","function _arrayFromIterator(iter) {\n var list = [];\n var next;\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n return list;\n}\nmodule.exports = _arrayFromIterator;","var _isFunction = /*#__PURE__*/require('./_isFunction');\n\nvar _toString = /*#__PURE__*/require('./_toString');\n\nfunction _assertPromise(name, p) {\n if (p == null || !_isFunction(p.then)) {\n throw new TypeError('`' + name + '` expected a Promise, received ' + _toString(p, []));\n }\n}\nmodule.exports = _assertPromise;","var _isArray = /*#__PURE__*/require('./_isArray');\n\n/**\n * This checks whether a function has a [methodname] function. If it isn't an\n * array it will execute that function otherwise it will default to the ramda\n * implementation.\n *\n * @private\n * @param {Function} fn ramda implemtation\n * @param {String} methodname property to check for a custom implementation\n * @return {Object} Whatever the return value of the method is.\n */\n\n\nfunction _checkForMethod(methodname, fn) {\n return function () {\n var length = arguments.length;\n if (length === 0) {\n return fn();\n }\n var obj = arguments[length - 1];\n return _isArray(obj) || typeof obj[methodname] !== 'function' ? fn.apply(this, arguments) : obj[methodname].apply(obj, Array.prototype.slice.call(arguments, 0, length - 1));\n };\n}\nmodule.exports = _checkForMethod;","var _cloneRegExp = /*#__PURE__*/require('./_cloneRegExp');\n\nvar type = /*#__PURE__*/require('../type');\n\n/**\n * Copies an object.\n *\n * @private\n * @param {*} value The value to be copied\n * @param {Array} refFrom Array containing the source references\n * @param {Array} refTo Array containing the copied source references\n * @param {Boolean} deep Whether or not to perform deep cloning.\n * @return {*} The copied value.\n */\n\n\nfunction _clone(value, refFrom, refTo, deep) {\n var copy = function copy(copiedValue) {\n var len = refFrom.length;\n var idx = 0;\n while (idx < len) {\n if (value === refFrom[idx]) {\n return refTo[idx];\n }\n idx += 1;\n }\n refFrom[idx + 1] = value;\n refTo[idx + 1] = copiedValue;\n for (var key in value) {\n copiedValue[key] = deep ? _clone(value[key], refFrom, refTo, true) : value[key];\n }\n return copiedValue;\n };\n switch (type(value)) {\n case 'Object':\n return copy({});\n case 'Array':\n return copy([]);\n case 'Date':\n return new Date(value.valueOf());\n case 'RegExp':\n return _cloneRegExp(value);\n default:\n return value;\n }\n}\nmodule.exports = _clone;","function _cloneRegExp(pattern) {\n return new RegExp(pattern.source, (pattern.global ? 'g' : '') + (pattern.ignoreCase ? 'i' : '') + (pattern.multiline ? 'm' : '') + (pattern.sticky ? 'y' : '') + (pattern.unicode ? 'u' : ''));\n}\nmodule.exports = _cloneRegExp;","function _complement(f) {\n return function () {\n return !f.apply(this, arguments);\n };\n}\nmodule.exports = _complement;","/**\n * Private `concat` function to merge two array-like objects.\n *\n * @private\n * @param {Array|Arguments} [set1=[]] An array-like object.\n * @param {Array|Arguments} [set2=[]] An array-like object.\n * @return {Array} A new, merged array.\n * @example\n *\n * _concat([4, 5, 6], [1, 2, 3]); //=> [4, 5, 6, 1, 2, 3]\n */\nfunction _concat(set1, set2) {\n set1 = set1 || [];\n set2 = set2 || [];\n var idx;\n var len1 = set1.length;\n var len2 = set2.length;\n var result = [];\n\n idx = 0;\n while (idx < len1) {\n result[result.length] = set1[idx];\n idx += 1;\n }\n idx = 0;\n while (idx < len2) {\n result[result.length] = set2[idx];\n idx += 1;\n }\n return result;\n}\nmodule.exports = _concat;","var _arity = /*#__PURE__*/require('./_arity');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nfunction _createPartialApplicator(concat) {\n return _curry2(function (fn, args) {\n return _arity(Math.max(0, fn.length - args.length), function () {\n return fn.apply(this, concat(args, arguments));\n });\n });\n}\nmodule.exports = _createPartialApplicator;","var _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\nmodule.exports = _curry1;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\nmodule.exports = _curry2;","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}\nmodule.exports = _curry3;","var _arity = /*#__PURE__*/require('./_arity');\n\nvar _isPlaceholder = /*#__PURE__*/require('./_isPlaceholder');\n\n/**\n * Internal curryN function.\n *\n * @private\n * @category Function\n * @param {Number} length The arity of the curried function.\n * @param {Array} received An array of arguments received thus far.\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curryN(length, received, fn) {\n return function () {\n var combined = [];\n var argsIdx = 0;\n var left = length;\n var combinedIdx = 0;\n while (combinedIdx < received.length || argsIdx < arguments.length) {\n var result;\n if (combinedIdx < received.length && (!_isPlaceholder(received[combinedIdx]) || argsIdx >= arguments.length)) {\n result = received[combinedIdx];\n } else {\n result = arguments[argsIdx];\n argsIdx += 1;\n }\n combined[combinedIdx] = result;\n if (!_isPlaceholder(result)) {\n left -= 1;\n }\n combinedIdx += 1;\n }\n return left <= 0 ? fn.apply(this, combined) : _arity(left, _curryN(length, combined, fn));\n };\n}\nmodule.exports = _curryN;","var _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isTransformer = /*#__PURE__*/require('./_isTransformer');\n\n/**\n * Returns a function that dispatches with different strategies based on the\n * object in list position (last argument). If it is an array, executes [fn].\n * Otherwise, if it has a function with one of the given method names, it will\n * execute that function (functor case). Otherwise, if it is a transformer,\n * uses transducer [xf] to return a new transformer (transducer case).\n * Otherwise, it will default to executing [fn].\n *\n * @private\n * @param {Array} methodNames properties to check for a custom implementation\n * @param {Function} xf transducer to initialize if object is transformer\n * @param {Function} fn default ramda implementation\n * @return {Function} A function that dispatches on object in list position\n */\n\n\nfunction _dispatchable(methodNames, xf, fn) {\n return function () {\n if (arguments.length === 0) {\n return fn();\n }\n var args = Array.prototype.slice.call(arguments, 0);\n var obj = args.pop();\n if (!_isArray(obj)) {\n var idx = 0;\n while (idx < methodNames.length) {\n if (typeof obj[methodNames[idx]] === 'function') {\n return obj[methodNames[idx]].apply(obj, args);\n }\n idx += 1;\n }\n if (_isTransformer(obj)) {\n var transducer = xf.apply(null, args);\n return transducer(obj);\n }\n }\n return fn.apply(this, arguments);\n };\n}\nmodule.exports = _dispatchable;","var take = /*#__PURE__*/require('../take');\n\nfunction dropLast(n, xs) {\n return take(n < xs.length ? xs.length - n : 0, xs);\n}\nmodule.exports = dropLast;","var slice = /*#__PURE__*/require('../slice');\n\nfunction dropLastWhile(pred, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && pred(xs[idx])) {\n idx -= 1;\n }\n return slice(0, idx + 1, xs);\n}\nmodule.exports = dropLastWhile;","var _arrayFromIterator = /*#__PURE__*/require('./_arrayFromIterator');\n\nvar _includesWith = /*#__PURE__*/require('./_includesWith');\n\nvar _functionName = /*#__PURE__*/require('./_functionName');\n\nvar _has = /*#__PURE__*/require('./_has');\n\nvar _objectIs = /*#__PURE__*/require('./_objectIs');\n\nvar keys = /*#__PURE__*/require('../keys');\n\nvar type = /*#__PURE__*/require('../type');\n\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n }\n\n // if *a* array contains any element that is not included in *b*\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n break;\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n break;\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n break;\n case 'Error':\n return a.name === b.name && a.message === b.message;\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n break;\n }\n\n var idx = stackA.length - 1;\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n\n idx = keysA.length - 1;\n while (idx >= 0) {\n var key = keysA[idx];\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n idx -= 1;\n }\n return true;\n}\nmodule.exports = _equals;","function _filter(fn, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n\n while (idx < len) {\n if (fn(list[idx])) {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n}\nmodule.exports = _filter;","var _forceReduced = /*#__PURE__*/require('./_forceReduced');\n\nvar _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _reduce = /*#__PURE__*/require('./_reduce');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar preservingReduced = function (xf) {\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return xf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n var ret = xf['@@transducer/step'](result, input);\n return ret['@@transducer/reduced'] ? _forceReduced(ret) : ret;\n }\n };\n};\n\nvar _flatCat = function _xcat(xf) {\n var rxf = preservingReduced(xf);\n return {\n '@@transducer/init': _xfBase.init,\n '@@transducer/result': function (result) {\n return rxf['@@transducer/result'](result);\n },\n '@@transducer/step': function (result, input) {\n return !_isArrayLike(input) ? _reduce(rxf, result, [input]) : _reduce(rxf, result, input);\n }\n };\n};\n\nmodule.exports = _flatCat;","function _forceReduced(x) {\n return {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\nmodule.exports = _forceReduced;","function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\nmodule.exports = _functionName;","function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\nmodule.exports = _has;","function _identity(x) {\n return x;\n}\nmodule.exports = _identity;","var _indexOf = /*#__PURE__*/require('./_indexOf');\n\nfunction _includes(a, list) {\n return _indexOf(list, a, 0) >= 0;\n}\nmodule.exports = _includes;","function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n idx += 1;\n }\n return false;\n}\nmodule.exports = _includesWith;","var equals = /*#__PURE__*/require('../equals');\n\nfunction _indexOf(list, a, idx) {\n var inf, item;\n // Array.prototype.indexOf doesn't exist below IE9\n if (typeof list.indexOf === 'function') {\n switch (typeof a) {\n case 'number':\n if (a === 0) {\n // manually crawl the list to distinguish between +0 and -0\n inf = 1 / a;\n while (idx < list.length) {\n item = list[idx];\n if (item === 0 && 1 / item === inf) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n } else if (a !== a) {\n // NaN\n while (idx < list.length) {\n item = list[idx];\n if (typeof item === 'number' && item !== item) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n }\n // non-zero numbers can utilise Set\n return list.indexOf(a, idx);\n\n // all these types can utilise Set\n case 'string':\n case 'boolean':\n case 'function':\n case 'undefined':\n return list.indexOf(a, idx);\n\n case 'object':\n if (a === null) {\n // null can utilise Set\n return list.indexOf(a, idx);\n }\n }\n }\n // anything else not covered above, defer to R.equals\n while (idx < list.length) {\n if (equals(list[idx], a)) {\n return idx;\n }\n idx += 1;\n }\n return -1;\n}\nmodule.exports = _indexOf;","var _has = /*#__PURE__*/require('./_has');\n\nvar toString = Object.prototype.toString;\nvar _isArguments = /*#__PURE__*/function () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nmodule.exports = _isArguments;","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nmodule.exports = Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","var _curry1 = /*#__PURE__*/require('./_curry1');\n\nvar _isArray = /*#__PURE__*/require('./_isArray');\n\nvar _isString = /*#__PURE__*/require('./_isString');\n\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike = /*#__PURE__*/_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n if (!x) {\n return false;\n }\n if (typeof x !== 'object') {\n return false;\n }\n if (_isString(x)) {\n return false;\n }\n if (x.nodeType === 1) {\n return !!x.length;\n }\n if (x.length === 0) {\n return true;\n }\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n return false;\n});\nmodule.exports = _isArrayLike;","function _isFunction(x) {\n return Object.prototype.toString.call(x) === '[object Function]';\n}\nmodule.exports = _isFunction;","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nmodule.exports = Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","function _isNumber(x) {\n return Object.prototype.toString.call(x) === '[object Number]';\n}\nmodule.exports = _isNumber;","function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\nmodule.exports = _isObject;","function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}\nmodule.exports = _isPlaceholder;","function _isRegExp(x) {\n return Object.prototype.toString.call(x) === '[object RegExp]';\n}\nmodule.exports = _isRegExp;","function _isString(x) {\n return Object.prototype.toString.call(x) === '[object String]';\n}\nmodule.exports = _isString;","function _isTransformer(obj) {\n return obj != null && typeof obj['@@transducer/step'] === 'function';\n}\nmodule.exports = _isTransformer;","var _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\n/**\n * `_makeFlat` is a helper function that returns a one-level or fully recursive\n * function based on the flag passed in.\n *\n * @private\n */\n\n\nfunction _makeFlat(recursive) {\n return function flatt(list) {\n var value, jlen, j;\n var result = [];\n var idx = 0;\n var ilen = list.length;\n\n while (idx < ilen) {\n if (_isArrayLike(list[idx])) {\n value = recursive ? flatt(list[idx]) : list[idx];\n j = 0;\n jlen = value.length;\n while (j < jlen) {\n result[result.length] = value[j];\n j += 1;\n }\n } else {\n result[result.length] = list[idx];\n }\n idx += 1;\n }\n return result;\n };\n}\nmodule.exports = _makeFlat;","function _map(fn, functor) {\n var idx = 0;\n var len = functor.length;\n var result = Array(len);\n while (idx < len) {\n result[idx] = fn(functor[idx]);\n idx += 1;\n }\n return result;\n}\nmodule.exports = _map;","var _has = /*#__PURE__*/require('./_has');\n\n// Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n while (idx < length) {\n var source = arguments[idx];\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n idx += 1;\n }\n return output;\n}\n\nmodule.exports = typeof Object.assign === 'function' ? Object.assign : _objectAssign;","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nmodule.exports = typeof Object.is === 'function' ? Object.is : _objectIs;","function _of(x) {\n return [x];\n}\nmodule.exports = _of;","function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\nmodule.exports = _pipe;","function _pipeP(f, g) {\n return function () {\n var ctx = this;\n return f.apply(ctx, arguments).then(function (x) {\n return g.call(ctx, x);\n });\n };\n}\nmodule.exports = _pipeP;","function _quote(s) {\n var escaped = s.replace(/\\\\/g, '\\\\\\\\').replace(/[\\b]/g, '\\\\b') // \\b matches word boundary; [\\b] matches backspace\n .replace(/\\f/g, '\\\\f').replace(/\\n/g, '\\\\n').replace(/\\r/g, '\\\\r').replace(/\\t/g, '\\\\t').replace(/\\v/g, '\\\\v').replace(/\\0/g, '\\\\0');\n\n return '\"' + escaped.replace(/\"/g, '\\\\\"') + '\"';\n}\nmodule.exports = _quote;","var _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _xwrap = /*#__PURE__*/require('./_xwrap');\n\nvar bind = /*#__PURE__*/require('../bind');\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n idx += 1;\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n step = iter.next();\n }\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\nmodule.exports = _reduce;","function _reduced(x) {\n return x && x['@@transducer/reduced'] ? x : {\n '@@transducer/value': x,\n '@@transducer/reduced': true\n };\n}\nmodule.exports = _reduced;","var _objectAssign = /*#__PURE__*/require('./_objectAssign');\n\nvar _identity = /*#__PURE__*/require('./_identity');\n\nvar _isArrayLike = /*#__PURE__*/require('./_isArrayLike');\n\nvar _isTransformer = /*#__PURE__*/require('./_isTransformer');\n\nvar objOf = /*#__PURE__*/require('../objOf');\n\nvar _stepCatArray = {\n '@@transducer/init': Array,\n '@@transducer/step': function (xs, x) {\n xs.push(x);\n return xs;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatString = {\n '@@transducer/init': String,\n '@@transducer/step': function (a, b) {\n return a + b;\n },\n '@@transducer/result': _identity\n};\nvar _stepCatObject = {\n '@@transducer/init': Object,\n '@@transducer/step': function (result, input) {\n return _objectAssign(result, _isArrayLike(input) ? objOf(input[0], input[1]) : input);\n },\n '@@transducer/result': _identity\n};\n\nfunction _stepCat(obj) {\n if (_isTransformer(obj)) {\n return obj;\n }\n if (_isArrayLike(obj)) {\n return _stepCatArray;\n }\n if (typeof obj === 'string') {\n return _stepCatString;\n }\n if (typeof obj === 'object') {\n return _stepCatObject;\n }\n throw new Error('Cannot create transformer for ' + obj);\n}\nmodule.exports = _stepCat;","/**\n * Polyfill from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString>.\n */\nvar pad = function pad(n) {\n return (n < 10 ? '0' : '') + n;\n};\n\nvar _toISOString = typeof Date.prototype.toISOString === 'function' ? function _toISOString(d) {\n return d.toISOString();\n} : function _toISOString(d) {\n return d.getUTCFullYear() + '-' + pad(d.getUTCMonth() + 1) + '-' + pad(d.getUTCDate()) + 'T' + pad(d.getUTCHours()) + ':' + pad(d.getUTCMinutes()) + ':' + pad(d.getUTCSeconds()) + '.' + (d.getUTCMilliseconds() / 1000).toFixed(3).slice(2, 5) + 'Z';\n};\n\nmodule.exports = _toISOString;","var _includes = /*#__PURE__*/require('./_includes');\n\nvar _map = /*#__PURE__*/require('./_map');\n\nvar _quote = /*#__PURE__*/require('./_quote');\n\nvar _toISOString = /*#__PURE__*/require('./_toISOString');\n\nvar keys = /*#__PURE__*/require('../keys');\n\nvar reject = /*#__PURE__*/require('../reject');\n\nfunction _toString(x, seen) {\n var recur = function recur(y) {\n var xs = seen.concat([x]);\n return _includes(y, xs) ? '<Circular>' : _toString(y, xs);\n };\n\n // mapPairs :: (Object, [String]) -> [String]\n var mapPairs = function (obj, keys) {\n return _map(function (k) {\n return _quote(k) + ': ' + recur(obj[k]);\n }, keys.slice().sort());\n };\n\n switch (Object.prototype.toString.call(x)) {\n case '[object Arguments]':\n return '(function() { return arguments; }(' + _map(recur, x).join(', ') + '))';\n case '[object Array]':\n return '[' + _map(recur, x).concat(mapPairs(x, reject(function (k) {\n return (/^\\d+$/.test(k)\n );\n }, keys(x)))).join(', ') + ']';\n case '[object Boolean]':\n return typeof x === 'object' ? 'new Boolean(' + recur(x.valueOf()) + ')' : x.toString();\n case '[object Date]':\n return 'new Date(' + (isNaN(x.valueOf()) ? recur(NaN) : _quote(_toISOString(x))) + ')';\n case '[object Null]':\n return 'null';\n case '[object Number]':\n return typeof x === 'object' ? 'new Number(' + recur(x.valueOf()) + ')' : 1 / x === -Infinity ? '-0' : x.toString(10);\n case '[object String]':\n return typeof x === 'object' ? 'new String(' + recur(x.valueOf()) + ')' : _quote(x);\n case '[object Undefined]':\n return 'undefined';\n default:\n if (typeof x.toString === 'function') {\n var repr = x.toString();\n if (repr !== '[object Object]') {\n return repr;\n }\n }\n return '{' + mapPairs(x, keys(x)).join(', ') + '}';\n }\n}\nmodule.exports = _toString;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XAll = /*#__PURE__*/function () {\n\n function XAll(f, xf) {\n this.xf = xf;\n this.f = f;\n this.all = true;\n }\n XAll.prototype['@@transducer/init'] = _xfBase.init;\n XAll.prototype['@@transducer/result'] = function (result) {\n if (this.all) {\n result = this.xf['@@transducer/step'](result, true);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAll.prototype['@@transducer/step'] = function (result, input) {\n if (!this.f(input)) {\n this.all = false;\n result = _reduced(this.xf['@@transducer/step'](result, false));\n }\n return result;\n };\n\n return XAll;\n}();\n\nvar _xall = /*#__PURE__*/_curry2(function _xall(f, xf) {\n return new XAll(f, xf);\n});\nmodule.exports = _xall;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XAny = /*#__PURE__*/function () {\n\n function XAny(f, xf) {\n this.xf = xf;\n this.f = f;\n this.any = false;\n }\n XAny.prototype['@@transducer/init'] = _xfBase.init;\n XAny.prototype['@@transducer/result'] = function (result) {\n if (!this.any) {\n result = this.xf['@@transducer/step'](result, false);\n }\n return this.xf['@@transducer/result'](result);\n };\n XAny.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.any = true;\n result = _reduced(this.xf['@@transducer/step'](result, true));\n }\n return result;\n };\n\n return XAny;\n}();\n\nvar _xany = /*#__PURE__*/_curry2(function _xany(f, xf) {\n return new XAny(f, xf);\n});\nmodule.exports = _xany;","var _concat = /*#__PURE__*/require('./_concat');\n\nvar _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XAperture = /*#__PURE__*/function () {\n\n function XAperture(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XAperture.prototype['@@transducer/init'] = _xfBase.init;\n XAperture.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XAperture.prototype['@@transducer/step'] = function (result, input) {\n this.store(input);\n return this.full ? this.xf['@@transducer/step'](result, this.getCopy()) : result;\n };\n XAperture.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n XAperture.prototype.getCopy = function () {\n return _concat(Array.prototype.slice.call(this.acc, this.pos), Array.prototype.slice.call(this.acc, 0, this.pos));\n };\n\n return XAperture;\n}();\n\nvar _xaperture = /*#__PURE__*/_curry2(function _xaperture(n, xf) {\n return new XAperture(n, xf);\n});\nmodule.exports = _xaperture;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _flatCat = /*#__PURE__*/require('./_flatCat');\n\nvar map = /*#__PURE__*/require('../map');\n\nvar _xchain = /*#__PURE__*/_curry2(function _xchain(f, xf) {\n return map(f, _flatCat(xf));\n});\nmodule.exports = _xchain;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XDrop = /*#__PURE__*/function () {\n\n function XDrop(n, xf) {\n this.xf = xf;\n this.n = n;\n }\n XDrop.prototype['@@transducer/init'] = _xfBase.init;\n XDrop.prototype['@@transducer/result'] = _xfBase.result;\n XDrop.prototype['@@transducer/step'] = function (result, input) {\n if (this.n > 0) {\n this.n -= 1;\n return result;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDrop;\n}();\n\nvar _xdrop = /*#__PURE__*/_curry2(function _xdrop(n, xf) {\n return new XDrop(n, xf);\n});\nmodule.exports = _xdrop;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XDropLast = /*#__PURE__*/function () {\n\n function XDropLast(n, xf) {\n this.xf = xf;\n this.pos = 0;\n this.full = false;\n this.acc = new Array(n);\n }\n XDropLast.prototype['@@transducer/init'] = _xfBase.init;\n XDropLast.prototype['@@transducer/result'] = function (result) {\n this.acc = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.full) {\n result = this.xf['@@transducer/step'](result, this.acc[this.pos]);\n }\n this.store(input);\n return result;\n };\n XDropLast.prototype.store = function (input) {\n this.acc[this.pos] = input;\n this.pos += 1;\n if (this.pos === this.acc.length) {\n this.pos = 0;\n this.full = true;\n }\n };\n\n return XDropLast;\n}();\n\nvar _xdropLast = /*#__PURE__*/_curry2(function _xdropLast(n, xf) {\n return new XDropLast(n, xf);\n});\nmodule.exports = _xdropLast;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduce = /*#__PURE__*/require('./_reduce');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XDropLastWhile = /*#__PURE__*/function () {\n\n function XDropLastWhile(fn, xf) {\n this.f = fn;\n this.retained = [];\n this.xf = xf;\n }\n XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropLastWhile.prototype['@@transducer/result'] = function (result) {\n this.retained = null;\n return this.xf['@@transducer/result'](result);\n };\n XDropLastWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.retain(result, input) : this.flush(result, input);\n };\n XDropLastWhile.prototype.flush = function (result, input) {\n result = _reduce(this.xf['@@transducer/step'], result, this.retained);\n this.retained = [];\n return this.xf['@@transducer/step'](result, input);\n };\n XDropLastWhile.prototype.retain = function (result, input) {\n this.retained.push(input);\n return result;\n };\n\n return XDropLastWhile;\n}();\n\nvar _xdropLastWhile = /*#__PURE__*/_curry2(function _xdropLastWhile(fn, xf) {\n return new XDropLastWhile(fn, xf);\n});\nmodule.exports = _xdropLastWhile;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XDropRepeatsWith = /*#__PURE__*/function () {\n\n function XDropRepeatsWith(pred, xf) {\n this.xf = xf;\n this.pred = pred;\n this.lastValue = undefined;\n this.seenFirstValue = false;\n }\n\n XDropRepeatsWith.prototype['@@transducer/init'] = _xfBase.init;\n XDropRepeatsWith.prototype['@@transducer/result'] = _xfBase.result;\n XDropRepeatsWith.prototype['@@transducer/step'] = function (result, input) {\n var sameAsLast = false;\n if (!this.seenFirstValue) {\n this.seenFirstValue = true;\n } else if (this.pred(this.lastValue, input)) {\n sameAsLast = true;\n }\n this.lastValue = input;\n return sameAsLast ? result : this.xf['@@transducer/step'](result, input);\n };\n\n return XDropRepeatsWith;\n}();\n\nvar _xdropRepeatsWith = /*#__PURE__*/_curry2(function _xdropRepeatsWith(pred, xf) {\n return new XDropRepeatsWith(pred, xf);\n});\nmodule.exports = _xdropRepeatsWith;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XDropWhile = /*#__PURE__*/function () {\n\n function XDropWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XDropWhile.prototype['@@transducer/init'] = _xfBase.init;\n XDropWhile.prototype['@@transducer/result'] = _xfBase.result;\n XDropWhile.prototype['@@transducer/step'] = function (result, input) {\n if (this.f) {\n if (this.f(input)) {\n return result;\n }\n this.f = null;\n }\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XDropWhile;\n}();\n\nvar _xdropWhile = /*#__PURE__*/_curry2(function _xdropWhile(f, xf) {\n return new XDropWhile(f, xf);\n});\nmodule.exports = _xdropWhile;","module.exports = {\n init: function () {\n return this.xf['@@transducer/init']();\n },\n result: function (result) {\n return this.xf['@@transducer/result'](result);\n }\n};","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XFilter = /*#__PURE__*/function () {\n\n function XFilter(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFilter.prototype['@@transducer/init'] = _xfBase.init;\n XFilter.prototype['@@transducer/result'] = _xfBase.result;\n XFilter.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : result;\n };\n\n return XFilter;\n}();\n\nvar _xfilter = /*#__PURE__*/_curry2(function _xfilter(f, xf) {\n return new XFilter(f, xf);\n});\nmodule.exports = _xfilter;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XFind = /*#__PURE__*/function () {\n\n function XFind(f, xf) {\n this.xf = xf;\n this.f = f;\n this.found = false;\n }\n XFind.prototype['@@transducer/init'] = _xfBase.init;\n XFind.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, void 0);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFind.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, input));\n }\n return result;\n };\n\n return XFind;\n}();\n\nvar _xfind = /*#__PURE__*/_curry2(function _xfind(f, xf) {\n return new XFind(f, xf);\n});\nmodule.exports = _xfind;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XFindIndex = /*#__PURE__*/function () {\n\n function XFindIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.found = false;\n }\n XFindIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindIndex.prototype['@@transducer/result'] = function (result) {\n if (!this.found) {\n result = this.xf['@@transducer/step'](result, -1);\n }\n return this.xf['@@transducer/result'](result);\n };\n XFindIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.found = true;\n result = _reduced(this.xf['@@transducer/step'](result, this.idx));\n }\n return result;\n };\n\n return XFindIndex;\n}();\n\nvar _xfindIndex = /*#__PURE__*/_curry2(function _xfindIndex(f, xf) {\n return new XFindIndex(f, xf);\n});\nmodule.exports = _xfindIndex;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XFindLast = /*#__PURE__*/function () {\n\n function XFindLast(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XFindLast.prototype['@@transducer/init'] = _xfBase.init;\n XFindLast.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.last));\n };\n XFindLast.prototype['@@transducer/step'] = function (result, input) {\n if (this.f(input)) {\n this.last = input;\n }\n return result;\n };\n\n return XFindLast;\n}();\n\nvar _xfindLast = /*#__PURE__*/_curry2(function _xfindLast(f, xf) {\n return new XFindLast(f, xf);\n});\nmodule.exports = _xfindLast;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XFindLastIndex = /*#__PURE__*/function () {\n\n function XFindLastIndex(f, xf) {\n this.xf = xf;\n this.f = f;\n this.idx = -1;\n this.lastIdx = -1;\n }\n XFindLastIndex.prototype['@@transducer/init'] = _xfBase.init;\n XFindLastIndex.prototype['@@transducer/result'] = function (result) {\n return this.xf['@@transducer/result'](this.xf['@@transducer/step'](result, this.lastIdx));\n };\n XFindLastIndex.prototype['@@transducer/step'] = function (result, input) {\n this.idx += 1;\n if (this.f(input)) {\n this.lastIdx = this.idx;\n }\n return result;\n };\n\n return XFindLastIndex;\n}();\n\nvar _xfindLastIndex = /*#__PURE__*/_curry2(function _xfindLastIndex(f, xf) {\n return new XFindLastIndex(f, xf);\n});\nmodule.exports = _xfindLastIndex;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XMap = /*#__PURE__*/function () {\n\n function XMap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XMap.prototype['@@transducer/init'] = _xfBase.init;\n XMap.prototype['@@transducer/result'] = _xfBase.result;\n XMap.prototype['@@transducer/step'] = function (result, input) {\n return this.xf['@@transducer/step'](result, this.f(input));\n };\n\n return XMap;\n}();\n\nvar _xmap = /*#__PURE__*/_curry2(function _xmap(f, xf) {\n return new XMap(f, xf);\n});\nmodule.exports = _xmap;","var _curryN = /*#__PURE__*/require('./_curryN');\n\nvar _has = /*#__PURE__*/require('./_has');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XReduceBy = /*#__PURE__*/function () {\n\n function XReduceBy(valueFn, valueAcc, keyFn, xf) {\n this.valueFn = valueFn;\n this.valueAcc = valueAcc;\n this.keyFn = keyFn;\n this.xf = xf;\n this.inputs = {};\n }\n XReduceBy.prototype['@@transducer/init'] = _xfBase.init;\n XReduceBy.prototype['@@transducer/result'] = function (result) {\n var key;\n for (key in this.inputs) {\n if (_has(key, this.inputs)) {\n result = this.xf['@@transducer/step'](result, this.inputs[key]);\n if (result['@@transducer/reduced']) {\n result = result['@@transducer/value'];\n break;\n }\n }\n }\n this.inputs = null;\n return this.xf['@@transducer/result'](result);\n };\n XReduceBy.prototype['@@transducer/step'] = function (result, input) {\n var key = this.keyFn(input);\n this.inputs[key] = this.inputs[key] || [key, this.valueAcc];\n this.inputs[key][1] = this.valueFn(this.inputs[key][1], input);\n return result;\n };\n\n return XReduceBy;\n}();\n\nvar _xreduceBy = /*#__PURE__*/_curryN(4, [], function _xreduceBy(valueFn, valueAcc, keyFn, xf) {\n return new XReduceBy(valueFn, valueAcc, keyFn, xf);\n});\nmodule.exports = _xreduceBy;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XTake = /*#__PURE__*/function () {\n\n function XTake(n, xf) {\n this.xf = xf;\n this.n = n;\n this.i = 0;\n }\n XTake.prototype['@@transducer/init'] = _xfBase.init;\n XTake.prototype['@@transducer/result'] = _xfBase.result;\n XTake.prototype['@@transducer/step'] = function (result, input) {\n this.i += 1;\n var ret = this.n === 0 ? result : this.xf['@@transducer/step'](result, input);\n return this.n >= 0 && this.i >= this.n ? _reduced(ret) : ret;\n };\n\n return XTake;\n}();\n\nvar _xtake = /*#__PURE__*/_curry2(function _xtake(n, xf) {\n return new XTake(n, xf);\n});\nmodule.exports = _xtake;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _reduced = /*#__PURE__*/require('./_reduced');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XTakeWhile = /*#__PURE__*/function () {\n\n function XTakeWhile(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTakeWhile.prototype['@@transducer/init'] = _xfBase.init;\n XTakeWhile.prototype['@@transducer/result'] = _xfBase.result;\n XTakeWhile.prototype['@@transducer/step'] = function (result, input) {\n return this.f(input) ? this.xf['@@transducer/step'](result, input) : _reduced(result);\n };\n\n return XTakeWhile;\n}();\n\nvar _xtakeWhile = /*#__PURE__*/_curry2(function _xtakeWhile(f, xf) {\n return new XTakeWhile(f, xf);\n});\nmodule.exports = _xtakeWhile;","var _curry2 = /*#__PURE__*/require('./_curry2');\n\nvar _xfBase = /*#__PURE__*/require('./_xfBase');\n\nvar XTap = /*#__PURE__*/function () {\n\n function XTap(f, xf) {\n this.xf = xf;\n this.f = f;\n }\n XTap.prototype['@@transducer/init'] = _xfBase.init;\n XTap.prototype['@@transducer/result'] = _xfBase.result;\n XTap.prototype['@@transducer/step'] = function (result, input) {\n this.f(input);\n return this.xf['@@transducer/step'](result, input);\n };\n\n return XTap;\n}();\n\nvar _xtap = /*#__PURE__*/_curry2(function _xtap(f, xf) {\n return new XTap(f, xf);\n});\nmodule.exports = _xtap;","var XWrap = /*#__PURE__*/function () {\n function XWrap(fn) {\n this.f = fn;\n }\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\nmodule.exports = _xwrap;","var _includes = /*#__PURE__*/require('./internal/_includes');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _filter = /*#__PURE__*/require('./internal/_filter');\n\nvar flip = /*#__PURE__*/require('./flip');\n\nvar uniq = /*#__PURE__*/require('./uniq');\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of those\n * elements common to both lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The list of elements found in both `list1` and `list2`.\n * @see R.innerJoin\n * @example\n *\n * R.intersection([1,2,3,4], [7,6,5,4,3]); //=> [4, 3]\n */\n\n\nvar intersection = /*#__PURE__*/_curry2(function intersection(list1, list2) {\n var lookupList, filteredList;\n if (list1.length > list2.length) {\n lookupList = list1;\n filteredList = list2;\n } else {\n lookupList = list2;\n filteredList = list1;\n }\n return uniq(_filter(flip(_includes)(lookupList), filteredList));\n});\nmodule.exports = intersection;","var _checkForMethod = /*#__PURE__*/require('./internal/_checkForMethod');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a new list with the separator interposed between elements.\n *\n * Dispatches to the `intersperse` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} separator The element to add to the list.\n * @param {Array} list The list to be interposed.\n * @return {Array} The new list.\n * @example\n *\n * R.intersperse('a', ['b', 'n', 'n', 's']); //=> ['b', 'a', 'n', 'a', 'n', 'a', 's']\n */\n\n\nvar intersperse = /*#__PURE__*/_curry2( /*#__PURE__*/_checkForMethod('intersperse', function intersperse(separator, list) {\n var out = [];\n var idx = 0;\n var length = list.length;\n while (idx < length) {\n if (idx === length - 1) {\n out.push(list[idx]);\n } else {\n out.push(list[idx], separator);\n }\n idx += 1;\n }\n return out;\n}));\nmodule.exports = intersperse;","var _clone = /*#__PURE__*/require('./internal/_clone');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _isTransformer = /*#__PURE__*/require('./internal/_isTransformer');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _stepCat = /*#__PURE__*/require('./internal/_stepCat');\n\n/**\n * Transforms the items of the list with the transducer and appends the\n * transformed items to the accumulator using an appropriate iterator function\n * based on the accumulator type.\n *\n * The accumulator can be an array, string, object or a transformer. Iterated\n * items will be appended to arrays and concatenated to strings. Objects will\n * be merged directly or 2-item arrays will be merged as key, value pairs.\n *\n * The accumulator can also be a transformer object that provides a 2-arity\n * reducing iterator function, step, 0-arity initial value function, init, and\n * 1-arity result extraction function result. The step function is used as the\n * iterator function in reduce. The result function is used to convert the\n * final accumulator into the return type and in most cases is R.identity. The\n * init function is used to provide the initial accumulator.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the\n * transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig a -> (b -> b) -> [c] -> a\n * @param {*} acc The initial accumulator value.\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.transduce\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n *\n * R.into([], transducer, numbers); //=> [2, 3]\n *\n * const intoArray = R.into([]);\n * intoArray(transducer, numbers); //=> [2, 3]\n */\n\n\nvar into = /*#__PURE__*/_curry3(function into(acc, xf, list) {\n return _isTransformer(acc) ? _reduce(xf(acc), acc['@@transducer/init'](), list) : _reduce(xf(_stepCat(acc)), _clone(acc, [], [], false), list);\n});\nmodule.exports = into;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Same as [`R.invertObj`](#invertObj), however this accounts for objects with\n * duplicate values by putting the values into an array.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: [ s, ... ]}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object with keys in an array.\n * @see R.invertObj\n * @example\n *\n * const raceResultsByFirstName = {\n * first: 'alice',\n * second: 'jake',\n * third: 'alice',\n * };\n * R.invert(raceResultsByFirstName);\n * //=> { 'alice': ['first', 'third'], 'jake':['second'] }\n */\n\n\nvar invert = /*#__PURE__*/_curry1(function invert(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n var val = obj[key];\n var list = _has(val, out) ? out[val] : out[val] = [];\n list[list.length] = key;\n idx += 1;\n }\n return out;\n});\nmodule.exports = invert;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Returns a new object with the keys of the given object as values, and the\n * values of the given object, which are coerced to strings, as keys. Note\n * that the last key found is preferred when handling the same value.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig {s: x} -> {x: s}\n * @param {Object} obj The object or array to invert\n * @return {Object} out A new object\n * @see R.invert\n * @example\n *\n * const raceResults = {\n * first: 'alice',\n * second: 'jake'\n * };\n * R.invertObj(raceResults);\n * //=> { 'alice': 'first', 'jake':'second' }\n *\n * // Alternatively:\n * const raceResults = ['alice', 'jake'];\n * R.invertObj(raceResults);\n * //=> { 'alice': '0', 'jake':'1' }\n */\n\n\nvar invertObj = /*#__PURE__*/_curry1(function invertObj(obj) {\n var props = keys(obj);\n var len = props.length;\n var idx = 0;\n var out = {};\n\n while (idx < len) {\n var key = props[idx];\n out[obj[key]] = key;\n idx += 1;\n }\n return out;\n});\nmodule.exports = invertObj;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isFunction = /*#__PURE__*/require('./internal/_isFunction');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar toString = /*#__PURE__*/require('./toString');\n\n/**\n * Turns a named method with a specified arity into a function that can be\n * called directly supplied with arguments and a target object.\n *\n * The returned function is curried and accepts `arity + 1` parameters where\n * the final parameter is the target object.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> String -> (a -> b -> ... -> n -> Object -> *)\n * @param {Number} arity Number of arguments the returned function should take\n * before the target object.\n * @param {String} method Name of the method to call.\n * @return {Function} A new curried function.\n * @see R.construct\n * @example\n *\n * const sliceFrom = R.invoker(1, 'slice');\n * sliceFrom(6, 'abcdefghijklm'); //=> 'ghijklm'\n * const sliceFrom6 = R.invoker(2, 'slice')(6);\n * sliceFrom6(8, 'abcdefghijklm'); //=> 'gh'\n * @symb R.invoker(0, 'method')(o) = o['method']()\n * @symb R.invoker(1, 'method')(a, o) = o['method'](a)\n * @symb R.invoker(2, 'method')(a, b, o) = o['method'](a, b)\n */\n\n\nvar invoker = /*#__PURE__*/_curry2(function invoker(arity, method) {\n return curryN(arity + 1, function () {\n var target = arguments[arity];\n if (target != null && _isFunction(target[method])) {\n return target[method].apply(target, Array.prototype.slice.call(arguments, 0, arity));\n }\n throw new TypeError(toString(target) + ' does not have a method named \"' + method + '\"');\n });\n});\nmodule.exports = invoker;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * See if an object (`val`) is an instance of the supplied constructor. This\n * function will check up the inheritance chain, if any.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Type\n * @sig (* -> {*}) -> a -> Boolean\n * @param {Object} ctor A constructor\n * @param {*} val The value to test\n * @return {Boolean}\n * @example\n *\n * R.is(Object, {}); //=> true\n * R.is(Number, 1); //=> true\n * R.is(Object, 1); //=> false\n * R.is(String, 's'); //=> true\n * R.is(String, new String('')); //=> true\n * R.is(Object, new String('')); //=> true\n * R.is(Object, 's'); //=> false\n * R.is(Number, {}); //=> false\n */\n\n\nvar is = /*#__PURE__*/_curry2(function is(Ctor, val) {\n return val != null && val.constructor === Ctor || val instanceof Ctor;\n});\nmodule.exports = is;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar empty = /*#__PURE__*/require('./empty');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Returns `true` if the given value is its type's empty value; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> Boolean\n * @param {*} x\n * @return {Boolean}\n * @see R.empty\n * @example\n *\n * R.isEmpty([1, 2, 3]); //=> false\n * R.isEmpty([]); //=> true\n * R.isEmpty(''); //=> true\n * R.isEmpty(null); //=> false\n * R.isEmpty({}); //=> true\n * R.isEmpty({length: 0}); //=> false\n */\n\n\nvar isEmpty = /*#__PURE__*/_curry1(function isEmpty(x) {\n return x != null && equals(x, empty(x));\n});\nmodule.exports = isEmpty;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\n\nvar isNil = /*#__PURE__*/_curry1(function isNil(x) {\n return x == null;\n});\nmodule.exports = isNil;","var invoker = /*#__PURE__*/require('./invoker');\n\n/**\n * Returns a string made by inserting the `separator` between each element and\n * concatenating all the elements into a single string.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig String -> [a] -> String\n * @param {Number|String} separator The string used to separate the elements.\n * @param {Array} xs The elements to join into a string.\n * @return {String} str The string made by concatenating `xs` with `separator`.\n * @see R.split\n * @example\n *\n * const spacer = R.join(' ');\n * spacer(['a', 2, 3.4]); //=> 'a 2 3.4'\n * R.join('|', [1, 2, 3]); //=> '1|2|3'\n */\n\n\nvar join = /*#__PURE__*/invoker(1, 'join');\nmodule.exports = join;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar converge = /*#__PURE__*/require('./converge');\n\n/**\n * juxt applies a list of functions to a list of values.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Function\n * @sig [(a, b, ..., m) -> n] -> ((a, b, ..., m) -> [n])\n * @param {Array} fns An array of functions\n * @return {Function} A function that returns a list of values after applying each of the original `fns` to its parameters.\n * @see R.applySpec\n * @example\n *\n * const getRange = R.juxt([Math.min, Math.max]);\n * getRange(3, 4, 9, -3); //=> [-3, 9]\n * @symb R.juxt([f, g, h])(a, b) = [f(a, b), g(a, b), h(a, b)]\n */\n\n\nvar juxt = /*#__PURE__*/_curry1(function juxt(fns) {\n return converge(function () {\n return Array.prototype.slice.call(arguments, 0);\n }, fns);\n});\nmodule.exports = juxt;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar _isArguments = /*#__PURE__*/require('./internal/_isArguments');\n\n// cover IE < 9 keys issues\n\n\nvar hasEnumBug = ! /*#__PURE__*/{ toString: null }.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n// Safari bug\nvar hasArgsEnumBug = /*#__PURE__*/function () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n idx += 1;\n }\n return false;\n};\n\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ? /*#__PURE__*/_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) : /*#__PURE__*/_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n var prop, nIdx;\n var ks = [];\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n nIdx -= 1;\n }\n }\n return ks;\n});\nmodule.exports = keys;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Returns a list containing the names of all the properties of the supplied\n * object, including prototype properties.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own and prototype properties.\n * @see R.keys, R.valuesIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.keysIn(f); //=> ['x', 'y']\n */\n\n\nvar keysIn = /*#__PURE__*/_curry1(function keysIn(obj) {\n var prop;\n var ks = [];\n for (prop in obj) {\n ks[ks.length] = prop;\n }\n return ks;\n});\nmodule.exports = keysIn;","var nth = /*#__PURE__*/require('./nth');\n\n/**\n * Returns the last element of the given list or string.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig [a] -> a | Undefined\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.init, R.head, R.tail\n * @example\n *\n * R.last(['fi', 'fo', 'fum']); //=> 'fum'\n * R.last([]); //=> undefined\n *\n * R.last('abc'); //=> 'c'\n * R.last(''); //=> ''\n */\n\n\nvar last = /*#__PURE__*/nth(-1);\nmodule.exports = last;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isArray = /*#__PURE__*/require('./internal/_isArray');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Returns the position of the last occurrence of an item in an array, or -1 if\n * the item is not included in the array. [`R.equals`](#equals) is used to\n * determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> Number\n * @param {*} target The item to find.\n * @param {Array} xs The array to search in.\n * @return {Number} the index of the target, or -1 if the target is not found.\n * @see R.indexOf\n * @example\n *\n * R.lastIndexOf(3, [-1,3,3,0,1,2,3,4]); //=> 6\n * R.lastIndexOf(10, [1,2,3,4]); //=> -1\n */\n\n\nvar lastIndexOf = /*#__PURE__*/_curry2(function lastIndexOf(target, xs) {\n if (typeof xs.lastIndexOf === 'function' && !_isArray(xs)) {\n return xs.lastIndexOf(target);\n } else {\n var idx = xs.length - 1;\n while (idx >= 0) {\n if (equals(xs[idx], target)) {\n return idx;\n }\n idx -= 1;\n }\n return -1;\n }\n});\nmodule.exports = lastIndexOf;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _isNumber = /*#__PURE__*/require('./internal/_isNumber');\n\n/**\n * Returns the number of elements in the array by returning `list.length`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [a] -> Number\n * @param {Array} list The array to inspect.\n * @return {Number} The length of the array.\n * @example\n *\n * R.length([]); //=> 0\n * R.length([1, 2, 3]); //=> 3\n */\n\n\nvar length = /*#__PURE__*/_curry1(function length(list) {\n return list != null && _isNumber(list.length) ? list.length : NaN;\n});\nmodule.exports = length;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar map = /*#__PURE__*/require('./map');\n\n/**\n * Returns a lens for the given getter and setter functions. The getter \"gets\"\n * the value of the focus; the setter \"sets\" the value of the focus. The setter\n * should not mutate the data structure.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig (s -> a) -> ((a, s) -> s) -> Lens s a\n * @param {Function} getter\n * @param {Function} setter\n * @return {Lens}\n * @see R.view, R.set, R.over, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lens(R.prop('x'), R.assoc('x'));\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\n\nvar lens = /*#__PURE__*/_curry2(function lens(getter, setter) {\n return function (toFunctorFn) {\n return function (target) {\n return map(function (focus) {\n return setter(focus, target);\n }, toFunctorFn(getter(target)));\n };\n };\n});\nmodule.exports = lens;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar lens = /*#__PURE__*/require('./lens');\n\nvar nth = /*#__PURE__*/require('./nth');\n\nvar update = /*#__PURE__*/require('./update');\n\n/**\n * Returns a lens whose focus is the specified index.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Number -> Lens s a\n * @param {Number} n\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.view(headLens, ['a', 'b', 'c']); //=> 'a'\n * R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']\n * R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']\n */\n\n\nvar lensIndex = /*#__PURE__*/_curry1(function lensIndex(n) {\n return lens(nth(n), update(n));\n});\nmodule.exports = lensIndex;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar assocPath = /*#__PURE__*/require('./assocPath');\n\nvar lens = /*#__PURE__*/require('./lens');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * Returns a lens whose focus is the specified path.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @typedefn Idx = String | Int\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig [Idx] -> Lens s a\n * @param {Array} path The path to use.\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xHeadYLens = R.lensPath(['x', 0, 'y']);\n *\n * R.view(xHeadYLens, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> 2\n * R.set(xHeadYLens, 1, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: 1, z: 3}, {y: 4, z: 5}]}\n * R.over(xHeadYLens, R.negate, {x: [{y: 2, z: 3}, {y: 4, z: 5}]});\n * //=> {x: [{y: -2, z: 3}, {y: 4, z: 5}]}\n */\n\n\nvar lensPath = /*#__PURE__*/_curry1(function lensPath(p) {\n return lens(path(p), assocPath(p));\n});\nmodule.exports = lensPath;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar assoc = /*#__PURE__*/require('./assoc');\n\nvar lens = /*#__PURE__*/require('./lens');\n\nvar prop = /*#__PURE__*/require('./prop');\n\n/**\n * Returns a lens whose focus is the specified property.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig String -> Lens s a\n * @param {String} k\n * @return {Lens}\n * @see R.view, R.set, R.over\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}\n */\n\n\nvar lensProp = /*#__PURE__*/_curry1(function lensProp(k) {\n return lens(prop(k), assoc(k));\n});\nmodule.exports = lensProp;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar liftN = /*#__PURE__*/require('./liftN');\n\n/**\n * \"lifts\" a function of arity > 1 so that it may \"map over\" a list, Function or other\n * object that satisfies the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.liftN\n * @example\n *\n * const madd3 = R.lift((a, b, c) => a + b + c);\n *\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n *\n * const madd5 = R.lift((a, b, c, d, e) => a + b + c + d + e);\n *\n * madd5([1,2], [3], [4, 5], [6], [7, 8]); //=> [21, 22, 22, 23, 22, 23, 23, 24]\n */\n\n\nvar lift = /*#__PURE__*/_curry1(function lift(fn) {\n return liftN(fn.length, fn);\n});\nmodule.exports = lift;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar ap = /*#__PURE__*/require('./ap');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar map = /*#__PURE__*/require('./map');\n\n/**\n * \"lifts\" a function to be the specified arity, so that it may \"map over\" that\n * many lists, Functions or other objects that satisfy the [FantasyLand Apply spec](https://github.com/fantasyland/fantasy-land#apply).\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Function\n * @sig Number -> (*... -> *) -> ([*]... -> [*])\n * @param {Function} fn The function to lift into higher context\n * @return {Function} The lifted function.\n * @see R.lift, R.ap\n * @example\n *\n * const madd3 = R.liftN(3, (...args) => R.sum(args));\n * madd3([1,2,3], [1,2,3], [1]); //=> [3, 4, 5, 4, 5, 6, 5, 6, 7]\n */\n\n\nvar liftN = /*#__PURE__*/_curry2(function liftN(arity, fn) {\n var lifted = curryN(arity, fn);\n return curryN(arity, function () {\n return _reduce(ap, map(lifted, arguments[0]), Array.prototype.slice.call(arguments, 1));\n });\n});\nmodule.exports = liftN;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the first argument is less than the second; `false`\n * otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @see R.gt\n * @example\n *\n * R.lt(2, 1); //=> false\n * R.lt(2, 2); //=> false\n * R.lt(2, 3); //=> true\n * R.lt('a', 'z'); //=> true\n * R.lt('z', 'a'); //=> false\n */\n\n\nvar lt = /*#__PURE__*/_curry2(function lt(a, b) {\n return a < b;\n});\nmodule.exports = lt;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if the first argument is less than or equal to the second;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> Boolean\n * @param {Number} a\n * @param {Number} b\n * @return {Boolean}\n * @see R.gte\n * @example\n *\n * R.lte(2, 1); //=> false\n * R.lte(2, 2); //=> true\n * R.lte(2, 3); //=> true\n * R.lte('a', 'z'); //=> true\n * R.lte('z', 'a'); //=> false\n */\n\n\nvar lte = /*#__PURE__*/_curry2(function lte(a, b) {\n return a <= b;\n});\nmodule.exports = lte;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _map = /*#__PURE__*/require('./internal/_map');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xmap = /*#__PURE__*/require('./internal/_xmap');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Takes a function and\n * a [functor](https://github.com/fantasyland/fantasy-land#functor),\n * applies the function to each of the functor's values, and returns\n * a functor of the same shape.\n *\n * Ramda provides suitable `map` implementations for `Array` and `Object`,\n * so this function may be applied to `[1, 2, 3]` or `{x: 1, y: 2, z: 3}`.\n *\n * Dispatches to the `map` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * Also treats functions as functors and will compose them together.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => (a -> b) -> f a -> f b\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {Array} list The list to be iterated over.\n * @return {Array} The new list.\n * @see R.transduce, R.addIndex\n * @example\n *\n * const double = x => x * 2;\n *\n * R.map(double, [1, 2, 3]); //=> [2, 4, 6]\n *\n * R.map(double, {x: 1, y: 2, z: 3}); //=> {x: 2, y: 4, z: 6}\n * @symb R.map(f, [a, b]) = [f(a), f(b)]\n * @symb R.map(f, { x: a, y: b }) = { x: f(a), y: f(b) }\n * @symb R.map(f, functor_o) = functor_o.map(f)\n */\n\n\nvar map = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['fantasy-land/map', 'map'], _xmap, function map(fn, functor) {\n switch (Object.prototype.toString.call(functor)) {\n case '[object Function]':\n return curryN(functor.length, function () {\n return fn.call(this, functor.apply(this, arguments));\n });\n case '[object Object]':\n return _reduce(function (acc, key) {\n acc[key] = fn(functor[key]);\n return acc;\n }, {}, keys(functor));\n default:\n return _map(fn, functor);\n }\n}));\nmodule.exports = map;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * The `mapAccum` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from left to right, and returning a final value of this\n * accumulator together with the new list.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.scan, R.addIndex, R.mapAccumRight\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [a + b, a + b];\n *\n * R.mapAccum(appender, 0, digits); //=> ['01234', ['01', '012', '0123', '01234']]\n * @symb R.mapAccum(f, a, [b, c, d]) = [\n * f(f(f(a, b)[0], c)[0], d)[0],\n * [\n * f(a, b)[1],\n * f(f(a, b)[0], c)[1],\n * f(f(f(a, b)[0], c)[0], d)[1]\n * ]\n * ]\n */\n\n\nvar mapAccum = /*#__PURE__*/_curry3(function mapAccum(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var tuple = [acc];\n while (idx < len) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx += 1;\n }\n return [tuple[0], result];\n});\nmodule.exports = mapAccum;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * The `mapAccumRight` function behaves like a combination of map and reduce; it\n * applies a function to each element of a list, passing an accumulating\n * parameter from right to left, and returning a final value of this\n * accumulator together with the new list.\n *\n * Similar to [`mapAccum`](#mapAccum), except moves through the input list from\n * the right to the left.\n *\n * The iterator function receives two arguments, *acc* and *value*, and should\n * return a tuple *[acc, value]*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((acc, x) -> (acc, y)) -> acc -> [x] -> (acc, [y])\n * @param {Function} fn The function to be called on every element of the input `list`.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.addIndex, R.mapAccum\n * @example\n *\n * const digits = ['1', '2', '3', '4'];\n * const appender = (a, b) => [b + a, b + a];\n *\n * R.mapAccumRight(appender, 5, digits); //=> ['12345', ['12345', '2345', '345', '45']]\n * @symb R.mapAccumRight(f, a, [b, c, d]) = [\n * f(f(f(a, d)[0], c)[0], b)[0],\n * [\n * f(a, d)[1],\n * f(f(a, d)[0], c)[1],\n * f(f(f(a, d)[0], c)[0], b)[1]\n * ]\n * ]\n */\n\n\nvar mapAccumRight = /*#__PURE__*/_curry3(function mapAccumRight(fn, acc, list) {\n var idx = list.length - 1;\n var result = [];\n var tuple = [acc];\n while (idx >= 0) {\n tuple = fn(tuple[0], list[idx]);\n result[idx] = tuple[1];\n idx -= 1;\n }\n return [tuple[0], result];\n});\nmodule.exports = mapAccumRight;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * An Object-specific version of [`map`](#map). The function is applied to three\n * arguments: *(value, key, obj)*. If only the value is significant, use\n * [`map`](#map) instead.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Object\n * @sig ((*, String, Object) -> *) -> Object -> Object\n * @param {Function} fn\n * @param {Object} obj\n * @return {Object}\n * @see R.map\n * @example\n *\n * const xyz = { x: 1, y: 2, z: 3 };\n * const prependKeyAndDouble = (num, key, obj) => key + (num * 2);\n *\n * R.mapObjIndexed(prependKeyAndDouble, xyz); //=> { x: 'x2', y: 'y4', z: 'z6' }\n */\n\n\nvar mapObjIndexed = /*#__PURE__*/_curry2(function mapObjIndexed(fn, obj) {\n return _reduce(function (acc, key) {\n acc[key] = fn(obj[key], key, obj);\n return acc;\n }, {}, keys(obj));\n});\nmodule.exports = mapObjIndexed;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Tests a regular expression against a String. Note that this function will\n * return an empty array when there are no matches. This differs from\n * [`String.prototype.match`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match)\n * which returns `null` when there are no matches.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig RegExp -> String -> [String | Undefined]\n * @param {RegExp} rx A regular expression.\n * @param {String} str The string to match against\n * @return {Array} The list of matches or empty array.\n * @see R.test\n * @example\n *\n * R.match(/([a-z]a)/g, 'bananas'); //=> ['ba', 'na', 'na']\n * R.match(/a/, 'b'); //=> []\n * R.match(/a/, null); //=> TypeError: null does not have a method named \"match\"\n */\n\n\nvar match = /*#__PURE__*/_curry2(function match(rx, str) {\n return str.match(rx) || [];\n});\nmodule.exports = match;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isInteger = /*#__PURE__*/require('./internal/_isInteger');\n\n/**\n * `mathMod` behaves like the modulo operator should mathematically, unlike the\n * `%` operator (and by extension, [`R.modulo`](#modulo)). So while\n * `-17 % 5` is `-2`, `mathMod(-17, 5)` is `3`. `mathMod` requires Integer\n * arguments, and returns NaN when the modulus is zero or negative.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} m The dividend.\n * @param {Number} p the modulus.\n * @return {Number} The result of `b mod a`.\n * @see R.modulo\n * @example\n *\n * R.mathMod(-17, 5); //=> 3\n * R.mathMod(17, 5); //=> 2\n * R.mathMod(17, -5); //=> NaN\n * R.mathMod(17, 0); //=> NaN\n * R.mathMod(17.2, 5); //=> NaN\n * R.mathMod(17, 5.3); //=> NaN\n *\n * const clock = R.mathMod(R.__, 12);\n * clock(15); //=> 3\n * clock(24); //=> 0\n *\n * const seventeenMod = R.mathMod(17);\n * seventeenMod(3); //=> 2\n * seventeenMod(4); //=> 1\n * seventeenMod(10); //=> 7\n */\n\n\nvar mathMod = /*#__PURE__*/_curry2(function mathMod(m, p) {\n if (!_isInteger(m)) {\n return NaN;\n }\n if (!_isInteger(p) || p < 1) {\n return NaN;\n }\n return (m % p + p) % p;\n});\nmodule.exports = mathMod;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns the larger of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.maxBy, R.min\n * @example\n *\n * R.max(789, 123); //=> 789\n * R.max('a', 'b'); //=> 'b'\n */\n\n\nvar max = /*#__PURE__*/_curry2(function max(a, b) {\n return b > a ? b : a;\n});\nmodule.exports = max;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * larger result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.max, R.minBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.maxBy(square, -3, 2); //=> -3\n *\n * R.reduce(R.maxBy(square), 0, [3, -5, 4, 1, -2]); //=> -5\n * R.reduce(R.maxBy(square), 0, []); //=> 0\n */\n\n\nvar maxBy = /*#__PURE__*/_curry3(function maxBy(f, a, b) {\n return f(b) > f(a) ? b : a;\n});\nmodule.exports = maxBy;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar sum = /*#__PURE__*/require('./sum');\n\n/**\n * Returns the mean of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.median\n * @example\n *\n * R.mean([2, 7, 9]); //=> 6\n * R.mean([]); //=> NaN\n */\n\n\nvar mean = /*#__PURE__*/_curry1(function mean(list) {\n return sum(list) / list.length;\n});\nmodule.exports = mean;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar mean = /*#__PURE__*/require('./mean');\n\n/**\n * Returns the median of the given list of numbers.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list\n * @return {Number}\n * @see R.mean\n * @example\n *\n * R.median([2, 9, 7]); //=> 7\n * R.median([7, 2, 10, 9]); //=> 8\n * R.median([]); //=> NaN\n */\n\n\nvar median = /*#__PURE__*/_curry1(function median(list) {\n var len = list.length;\n if (len === 0) {\n return NaN;\n }\n var width = 2 - len % 2;\n var idx = (len - width) / 2;\n return mean(Array.prototype.slice.call(list, 0).sort(function (a, b) {\n return a < b ? -1 : a > b ? 1 : 0;\n }).slice(idx, idx + width));\n});\nmodule.exports = median;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Creates a new function that, when invoked, caches the result of calling `fn`\n * for a given argument set and returns the result. Subsequent calls to the\n * memoized `fn` with the same argument set will not result in an additional\n * call to `fn`; instead, the cached result for that set of arguments will be\n * returned.\n *\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (*... -> String) -> (*... -> a) -> (*... -> a)\n * @param {Function} fn The function to generate the cache key.\n * @param {Function} fn The function to memoize.\n * @return {Function} Memoized version of `fn`.\n * @example\n *\n * let count = 0;\n * const factorial = R.memoizeWith(R.identity, n => {\n * count += 1;\n * return R.product(R.range(1, n + 1));\n * });\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * factorial(5); //=> 120\n * count; //=> 1\n */\n\n\nvar memoizeWith = /*#__PURE__*/_curry2(function memoizeWith(mFn, fn) {\n var cache = {};\n return _arity(fn.length, function () {\n var key = mFn.apply(this, arguments);\n if (!_has(key, cache)) {\n cache[key] = fn.apply(this, arguments);\n }\n return cache[key];\n });\n});\nmodule.exports = memoizeWith;","var _objectAssign = /*#__PURE__*/require('./internal/_objectAssign');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @deprecated\n * @example\n *\n * R.merge({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.merge({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.merge(a, b) = {...a, ...b}\n */\n\n\nvar merge = /*#__PURE__*/_curry2(function merge(l, r) {\n return _objectAssign({}, l, r);\n});\nmodule.exports = merge;","var _objectAssign = /*#__PURE__*/require('./internal/_objectAssign');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Merges a list of objects together into one object.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig [{k: v}] -> {k: v}\n * @param {Array} list An array of objects\n * @return {Object} A merged object.\n * @see R.reduce\n * @example\n *\n * R.mergeAll([{foo:1},{bar:2},{baz:3}]); //=> {foo:1,bar:2,baz:3}\n * R.mergeAll([{foo:1},{foo:2},{bar:2}]); //=> {foo:2,bar:2}\n * @symb R.mergeAll([{ x: 1 }, { y: 2 }, { z: 3 }]) = { x: 1, y: 2, z: 3 }\n */\n\n\nvar mergeAll = /*#__PURE__*/_curry1(function mergeAll(list) {\n return _objectAssign.apply(null, [{}].concat(list));\n});\nmodule.exports = mergeAll;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar mergeDeepWithKey = /*#__PURE__*/require('./mergeDeepWithKey');\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepRight, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepLeft({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 10, contact: { email: 'moo@example.com' }}\n */\n\n\nvar mergeDeepLeft = /*#__PURE__*/_curry2(function mergeDeepLeft(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return lVal;\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepLeft;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar mergeDeepWithKey = /*#__PURE__*/require('./mergeDeepWithKey');\n\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\n\nvar mergeDeepRight = /*#__PURE__*/_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepRight;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar mergeDeepWithKey = /*#__PURE__*/require('./mergeDeepWithKey');\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to associated values using the\n * resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepWith(R.concat,\n * { a: true, c: { values: [10, 20] }},\n * { b: true, c: { values: [15, 35] }});\n * //=> { a: true, b: true, c: { values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWith = /*#__PURE__*/_curry3(function mergeDeepWith(fn, lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return fn(lVal, rVal);\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepWith;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _isObject = /*#__PURE__*/require('./internal/_isObject');\n\nvar mergeWithKey = /*#__PURE__*/require('./mergeWithKey');\n\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWithKey = /*#__PURE__*/_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\nmodule.exports = mergeDeepWithKey;","var _objectAssign = /*#__PURE__*/require('./internal/_objectAssign');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the first object will be used.\n *\n * @func\n * @memberOf R\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeRight, R.mergeDeepLeft, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeLeft({ 'age': 40 }, { 'name': 'fred', 'age': 10 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const resetToDefault = R.mergeLeft({x: 0});\n * resetToDefault({x: 5, y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeLeft(a, b) = {...b, ...a}\n */\n\n\nvar mergeLeft = /*#__PURE__*/_curry2(function mergeLeft(l, r) {\n return _objectAssign({}, r, l);\n});\nmodule.exports = mergeLeft;","var _objectAssign = /*#__PURE__*/require('./internal/_objectAssign');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\n\nvar mergeRight = /*#__PURE__*/_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\nmodule.exports = mergeRight;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar mergeWithKey = /*#__PURE__*/require('./mergeWithKey');\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the values\n * associated with the key in each object, with the result being used as the\n * value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWith, R.merge, R.mergeWithKey\n * @example\n *\n * R.mergeWith(R.concat,\n * { a: true, values: [10, 20] },\n * { b: true, values: [15, 35] });\n * //=> { a: true, b: true, values: [10, 20, 15, 35] }\n */\n\n\nvar mergeWith = /*#__PURE__*/_curry3(function mergeWith(fn, l, r) {\n return mergeWithKey(function (_, _l, _r) {\n return fn(_l, _r);\n }, l, r);\n});\nmodule.exports = mergeWith;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\n\nvar mergeWithKey = /*#__PURE__*/_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\nmodule.exports = mergeWithKey;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns the smaller of its two arguments.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord a => a -> a -> a\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.minBy, R.max\n * @example\n *\n * R.min(789, 123); //=> 123\n * R.min('a', 'b'); //=> 'a'\n */\n\n\nvar min = /*#__PURE__*/_curry2(function min(a, b) {\n return b < a ? b : a;\n});\nmodule.exports = min;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Takes a function and two values, and returns whichever value produces the\n * smaller result when passed to the provided function.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Relation\n * @sig Ord b => (a -> b) -> a -> a -> a\n * @param {Function} f\n * @param {*} a\n * @param {*} b\n * @return {*}\n * @see R.min, R.maxBy\n * @example\n *\n * // square :: Number -> Number\n * const square = n => n * n;\n *\n * R.minBy(square, -3, 2); //=> 2\n *\n * R.reduce(R.minBy(square), Infinity, [3, -5, 4, 1, -2]); //=> 1\n * R.reduce(R.minBy(square), Infinity, []); //=> Infinity\n */\n\n\nvar minBy = /*#__PURE__*/_curry3(function minBy(f, a, b) {\n return f(b) < f(a) ? b : a;\n});\nmodule.exports = minBy;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Divides the first parameter by the second and returns the remainder. Note\n * that this function preserves the JavaScript-style behavior for modulo. For\n * mathematical modulo see [`mathMod`](#mathMod).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The value to the divide.\n * @param {Number} b The pseudo-modulus\n * @return {Number} The result of `b % a`.\n * @see R.mathMod\n * @example\n *\n * R.modulo(17, 3); //=> 2\n * // JS behavior:\n * R.modulo(-17, 3); //=> -2\n * R.modulo(17, -3); //=> 2\n *\n * const isOdd = R.modulo(R.__, 2);\n * isOdd(42); //=> 0\n * isOdd(21); //=> 1\n */\n\n\nvar modulo = /*#__PURE__*/_curry2(function modulo(a, b) {\n return a % b;\n});\nmodule.exports = modulo;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Move an item, at index `from`, to index `to`, in a list of elements.\n * A new list will be created containing the new elements order.\n *\n * @func\n * @memberOf R\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} from The source index\n * @param {Number} to The destination index\n * @param {Array} list The list which will serve to realise the move\n * @return {Array} The new list reordered\n * @example\n *\n * R.move(0, 2, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['b', 'c', 'a', 'd', 'e', 'f']\n * R.move(-1, 0, ['a', 'b', 'c', 'd', 'e', 'f']); //=> ['f', 'a', 'b', 'c', 'd', 'e'] list rotation\n */\n\n\nvar move = /*#__PURE__*/_curry3(function (from, to, list) {\n var length = list.length;\n var result = list.slice();\n var positiveFrom = from < 0 ? length + from : from;\n var positiveTo = to < 0 ? length + to : to;\n var item = result.splice(positiveFrom, 1);\n\n return positiveFrom < 0 || positiveFrom >= list.length || positiveTo < 0 || positiveTo >= list.length ? list : [].concat(result.slice(0, positiveTo)).concat(item).concat(result.slice(positiveTo, list.length));\n});\n\nmodule.exports = move;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Multiplies two numbers. Equivalent to `a * b` but curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a * b`.\n * @see R.divide\n * @example\n *\n * const double = R.multiply(2);\n * const triple = R.multiply(3);\n * double(3); //=> 6\n * triple(4); //=> 12\n * R.multiply(2, 5); //=> 10\n */\n\n\nvar multiply = /*#__PURE__*/_curry2(function multiply(a, b) {\n return a * b;\n});\nmodule.exports = multiply;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly `n` parameters. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig Number -> (* -> a) -> (* -> a)\n * @param {Number} n The desired arity of the new function.\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity `n`.\n * @see R.binary, R.unary\n * @example\n *\n * const takesTwoArgs = (a, b) => [a, b];\n *\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.nAry(1, takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only `n` arguments are passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.nAry(0, f)(a, b) = f()\n * @symb R.nAry(1, f)(a, b) = f(a)\n * @symb R.nAry(2, f)(a, b) = f(a, b)\n */\n\n\nvar nAry = /*#__PURE__*/_curry2(function nAry(n, fn) {\n switch (n) {\n case 0:\n return function () {\n return fn.call(this);\n };\n case 1:\n return function (a0) {\n return fn.call(this, a0);\n };\n case 2:\n return function (a0, a1) {\n return fn.call(this, a0, a1);\n };\n case 3:\n return function (a0, a1, a2) {\n return fn.call(this, a0, a1, a2);\n };\n case 4:\n return function (a0, a1, a2, a3) {\n return fn.call(this, a0, a1, a2, a3);\n };\n case 5:\n return function (a0, a1, a2, a3, a4) {\n return fn.call(this, a0, a1, a2, a3, a4);\n };\n case 6:\n return function (a0, a1, a2, a3, a4, a5) {\n return fn.call(this, a0, a1, a2, a3, a4, a5);\n };\n case 7:\n return function (a0, a1, a2, a3, a4, a5, a6) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6);\n };\n case 8:\n return function (a0, a1, a2, a3, a4, a5, a6, a7) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7);\n };\n case 9:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8);\n };\n case 10:\n return function (a0, a1, a2, a3, a4, a5, a6, a7, a8, a9) {\n return fn.call(this, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);\n };\n default:\n throw new Error('First argument to nAry must be a non-negative integer no greater than ten');\n }\n});\nmodule.exports = nAry;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Negates its argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Math\n * @sig Number -> Number\n * @param {Number} n\n * @return {Number}\n * @example\n *\n * R.negate(42); //=> -42\n */\n\n\nvar negate = /*#__PURE__*/_curry1(function negate(n) {\n return -n;\n});\nmodule.exports = negate;","var _complement = /*#__PURE__*/require('./internal/_complement');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar all = /*#__PURE__*/require('./all');\n\n/**\n * Returns `true` if no elements of the list match the predicate, `false`\n * otherwise.\n *\n * Dispatches to the `all` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> Boolean\n * @param {Function} fn The predicate function.\n * @param {Array} list The array to consider.\n * @return {Boolean} `true` if the predicate is not satisfied by every element, `false` otherwise.\n * @see R.all, R.any\n * @example\n *\n * const isEven = n => n % 2 === 0;\n * const isOdd = n => n % 2 === 1;\n *\n * R.none(isEven, [1, 3, 5, 7, 9, 11]); //=> true\n * R.none(isOdd, [1, 3, 5, 7, 8, 11]); //=> false\n */\n\n\nvar none = /*#__PURE__*/_curry2(function none(fn, input) {\n return all(_complement(fn), input);\n});\nmodule.exports = none;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\n\nvar not = /*#__PURE__*/_curry1(function not(a) {\n return !a;\n});\nmodule.exports = not;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isString = /*#__PURE__*/require('./internal/_isString');\n\n/**\n * Returns the nth element of the given list or string. If n is negative the\n * element at index length + n is returned.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> a | Undefined\n * @sig Number -> String -> String\n * @param {Number} offset\n * @param {*} list\n * @return {*}\n * @example\n *\n * const list = ['foo', 'bar', 'baz', 'quux'];\n * R.nth(1, list); //=> 'bar'\n * R.nth(-1, list); //=> 'quux'\n * R.nth(-99, list); //=> undefined\n *\n * R.nth(2, 'abc'); //=> 'c'\n * R.nth(3, 'abc'); //=> ''\n * @symb R.nth(-1, [a, b, c]) = c\n * @symb R.nth(0, [a, b, c]) = a\n * @symb R.nth(1, [a, b, c]) = b\n */\n\n\nvar nth = /*#__PURE__*/_curry2(function nth(offset, list) {\n var idx = offset < 0 ? list.length + offset : offset;\n return _isString(list) ? list.charAt(idx) : list[idx];\n});\nmodule.exports = nth;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\nvar nth = /*#__PURE__*/require('./nth');\n\n/**\n * Returns a function which returns its nth argument.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Function\n * @sig Number -> *... -> *\n * @param {Number} n\n * @return {Function}\n * @example\n *\n * R.nthArg(1)('a', 'b', 'c'); //=> 'b'\n * R.nthArg(-1)('a', 'b', 'c'); //=> 'c'\n * @symb R.nthArg(-1)(a, b, c) = c\n * @symb R.nthArg(0)(a, b, c) = a\n * @symb R.nthArg(1)(a, b, c) = b\n */\n\n\nvar nthArg = /*#__PURE__*/_curry1(function nthArg(n) {\n var arity = n < 0 ? 1 : n + 1;\n return curryN(arity, function () {\n return nth(n, arguments);\n });\n});\nmodule.exports = nthArg;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * `o` is a curried composition function that returns a unary function.\n * Like [`compose`](#compose), `o` performs right-to-left function composition.\n * Unlike [`compose`](#compose), the rightmost function passed to `o` will be\n * invoked with only one argument. Also, unlike [`compose`](#compose), `o` is\n * limited to accepting only 2 unary functions. The name o was chosen because\n * of its similarity to the mathematical composition operator ∘.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Function\n * @sig (b -> c) -> (a -> b) -> a -> c\n * @param {Function} f\n * @param {Function} g\n * @return {Function}\n * @see R.compose, R.pipe\n * @example\n *\n * const classyGreeting = name => \"The name's \" + name.last + \", \" + name.first + \" \" + name.last\n * const yellGreeting = R.o(R.toUpper, classyGreeting);\n * yellGreeting({first: 'James', last: 'Bond'}); //=> \"THE NAME'S BOND, JAMES BOND\"\n *\n * R.o(R.multiply(10), R.add(10))(-4) //=> 60\n *\n * @symb R.o(f, g, x) = f(g(x))\n */\n\n\nvar o = /*#__PURE__*/_curry3(function o(f, g, x) {\n return f(g(x));\n});\nmodule.exports = o;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates an object containing a single key:value pair.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @sig String -> a -> {String:a}\n * @param {String} key\n * @param {*} val\n * @return {Object}\n * @see R.pair\n * @example\n *\n * const matchPhrases = R.compose(\n * R.objOf('must'),\n * R.map(R.objOf('match_phrase'))\n * );\n * matchPhrases(['foo', 'bar', 'baz']); //=> {must: [{match_phrase: 'foo'}, {match_phrase: 'bar'}, {match_phrase: 'baz'}]}\n */\n\n\nvar objOf = /*#__PURE__*/_curry2(function objOf(key, val) {\n var obj = {};\n obj[key] = val;\n return obj;\n});\nmodule.exports = objOf;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _of = /*#__PURE__*/require('./internal/_of');\n\n/**\n * Returns a singleton array containing the value provided.\n *\n * Note this `of` is different from the ES6 `of`; See\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/of\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category Function\n * @sig a -> [a]\n * @param {*} x any value\n * @return {Array} An array wrapping `x`.\n * @example\n *\n * R.of(null); //=> [null]\n * R.of([42]); //=> [[42]]\n */\n\n\nvar of = /*#__PURE__*/_curry1(_of);\nmodule.exports = of;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a partial copy of an object omitting the keys specified.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [String] -> {String: *} -> {String: *}\n * @param {Array} names an array of String property names to omit from the new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with properties from `names` not on it.\n * @see R.pick\n * @example\n *\n * R.omit(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, c: 3}\n */\n\n\nvar omit = /*#__PURE__*/_curry2(function omit(names, obj) {\n var result = {};\n var index = {};\n var idx = 0;\n var len = names.length;\n\n while (idx < len) {\n index[names[idx]] = 1;\n idx += 1;\n }\n\n for (var prop in obj) {\n if (!index.hasOwnProperty(prop)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nmodule.exports = omit;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Accepts a function `fn` and returns a function that guards invocation of\n * `fn` such that `fn` can only ever be called once, no matter how many times\n * the returned function is invoked. The first value calculated is returned in\n * subsequent invocations.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a... -> b) -> (a... -> b)\n * @param {Function} fn The function to wrap in a call-only-once wrapper.\n * @return {Function} The wrapped function.\n * @example\n *\n * const addOneOnce = R.once(x => x + 1);\n * addOneOnce(10); //=> 11\n * addOneOnce(addOneOnce(50)); //=> 11\n */\n\n\nvar once = /*#__PURE__*/_curry1(function once(fn) {\n var called = false;\n var result;\n return _arity(fn.length, function () {\n if (called) {\n return result;\n }\n called = true;\n result = fn.apply(this, arguments);\n return result;\n });\n});\nmodule.exports = once;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns `true` if one or both of its arguments are `true`. Returns `false`\n * if both arguments are `false`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig a -> b -> a | b\n * @param {Any} a\n * @param {Any} b\n * @return {Any} the first argument if truthy, otherwise the second argument.\n * @see R.either\n * @example\n *\n * R.or(true, true); //=> true\n * R.or(true, false); //=> true\n * R.or(false, true); //=> true\n * R.or(false, false); //=> false\n */\n\n\nvar or = /*#__PURE__*/_curry2(function or(a, b) {\n return a || b;\n});\nmodule.exports = or;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _assertPromise = /*#__PURE__*/require('./internal/_assertPromise');\n\n/**\n * Returns the result of applying the onFailure function to the value inside\n * a failed promise. This is useful for handling rejected promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig (e -> b) -> (Promise e a) -> (Promise e b)\n * @sig (e -> (Promise f b)) -> (Promise e a) -> (Promise f b)\n * @param {Function} onFailure The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(null, onFailure)`\n * @see R.then\n * @example\n *\n * var failedFetch = (id) => Promise.reject('bad ID');\n * var useDefault = () => ({ firstName: 'Bob', lastName: 'Loblaw' })\n *\n * //recoverFromFailure :: String -> Promise ({firstName, lastName})\n * var recoverFromFailure = R.pipe(\n * failedFetch,\n * R.otherwise(useDefault),\n * R.then(R.pick(['firstName', 'lastName'])),\n * );\n * recoverFromFailure(12345).then(console.log)\n */\n\n\nvar otherwise = /*#__PURE__*/_curry2(function otherwise(f, p) {\n _assertPromise('otherwise', p);\n\n return p.then(null, f);\n});\nmodule.exports = otherwise;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n// `Identity` is a functor that holds a single value, where `map` simply\n// transforms the held value with the provided function.\n\n\nvar Identity = function (x) {\n return { value: x, map: function (f) {\n return Identity(f(x));\n } };\n};\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the result of applying the given function to\n * the focused value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> (a -> a) -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const headLens = R.lensIndex(0);\n *\n * R.over(headLens, R.toUpper, ['foo', 'bar', 'baz']); //=> ['FOO', 'bar', 'baz']\n */\nvar over = /*#__PURE__*/_curry3(function over(lens, f, x) {\n // The value returned by the getter function is first transformed with `f`,\n // then set as the value of an `Identity`. This is then mapped over with the\n // setter function of the lens.\n return lens(function (y) {\n return Identity(f(y));\n })(x).value;\n});\nmodule.exports = over;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Takes two arguments, `fst` and `snd`, and returns `[fst, snd]`.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category List\n * @sig a -> b -> (a,b)\n * @param {*} fst\n * @param {*} snd\n * @return {Array}\n * @see R.objOf, R.of\n * @example\n *\n * R.pair('foo', 'bar'); //=> ['foo', 'bar']\n */\n\n\nvar pair = /*#__PURE__*/_curry2(function pair(fst, snd) {\n return [fst, snd];\n});\nmodule.exports = pair;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _createPartialApplicator = /*#__PURE__*/require('./internal/_createPartialApplicator');\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided initially followed by the arguments provided to `g`.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [a, b, c, ...] -> ((d, e, f, ..., n) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partialRight, R.curry\n * @example\n *\n * const multiply2 = (a, b) => a * b;\n * const double = R.partial(multiply2, [2]);\n * double(2); //=> 4\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const sayHello = R.partial(greet, ['Hello']);\n * const sayHelloToMs = R.partial(sayHello, ['Ms.']);\n * sayHelloToMs('Jane', 'Jones'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partial(f, [a, b])(c, d) = f(a, b, c, d)\n */\n\n\nvar partial = /*#__PURE__*/_createPartialApplicator(_concat);\nmodule.exports = partial;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _createPartialApplicator = /*#__PURE__*/require('./internal/_createPartialApplicator');\n\nvar flip = /*#__PURE__*/require('./flip');\n\n/**\n * Takes a function `f` and a list of arguments, and returns a function `g`.\n * When applied, `g` returns the result of applying `f` to the arguments\n * provided to `g` followed by the arguments provided initially.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a, b, c, ..., n) -> x) -> [d, e, f, ..., n] -> ((a, b, c, ...) -> x)\n * @param {Function} f\n * @param {Array} args\n * @return {Function}\n * @see R.partial\n * @example\n *\n * const greet = (salutation, title, firstName, lastName) =>\n * salutation + ', ' + title + ' ' + firstName + ' ' + lastName + '!';\n *\n * const greetMsJaneJones = R.partialRight(greet, ['Ms.', 'Jane', 'Jones']);\n *\n * greetMsJaneJones('Hello'); //=> 'Hello, Ms. Jane Jones!'\n * @symb R.partialRight(f, [a, b])(c, d) = f(c, d, a, b)\n */\n\n\nvar partialRight = /*#__PURE__*/_createPartialApplicator( /*#__PURE__*/flip(_concat));\nmodule.exports = partialRight;","var filter = /*#__PURE__*/require('./filter');\n\nvar juxt = /*#__PURE__*/require('./juxt');\n\nvar reject = /*#__PURE__*/require('./reject');\n\n/**\n * Takes a predicate and a list or other `Filterable` object and returns the\n * pair of filterable objects of the same type of elements which do and do not\n * satisfy, the predicate, respectively. Filterable objects include plain objects or any object\n * that has a filter method such as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> [f a, f a]\n * @param {Function} pred A predicate to determine which side the element belongs to.\n * @param {Array} filterable the list (or other filterable) to partition.\n * @return {Array} An array, containing first the subset of elements that satisfy the\n * predicate, and second the subset of elements that do not satisfy.\n * @see R.filter, R.reject\n * @example\n *\n * R.partition(R.includes('s'), ['sss', 'ttt', 'foo', 'bars']);\n * // => [ [ 'sss', 'bars' ], [ 'ttt', 'foo' ] ]\n *\n * R.partition(R.includes('s'), { a: 'sss', b: 'ttt', foo: 'bars' });\n * // => [ { a: 'sss', foo: 'bars' }, { b: 'ttt' } ]\n */\n\n\nvar partition = /*#__PURE__*/juxt([filter, reject]);\nmodule.exports = partition;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Retrieve the value at a given path.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig [Idx] -> {a} -> a | Undefined\n * @param {Array} path The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path`.\n * @see R.prop\n * @example\n *\n * R.path(['a', 'b'], {a: {b: 2}}); //=> 2\n * R.path(['a', 'b'], {c: {b: 2}}); //=> undefined\n */\n\n\nvar path = /*#__PURE__*/_curry2(function path(paths, obj) {\n var val = obj;\n var idx = 0;\n while (idx < paths.length) {\n if (val == null) {\n return;\n }\n val = val[paths[idx]];\n idx += 1;\n }\n return val;\n});\nmodule.exports = path;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar equals = /*#__PURE__*/require('./equals');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * Determines whether a nested path on an object has a specific value, in\n * [`R.equals`](#equals) terms. Most likely used to filter a list.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category Relation\n * @typedefn Idx = String | Int\n * @sig [Idx] -> a -> {a} -> Boolean\n * @param {Array} path The path of the nested property to use\n * @param {*} val The value to compare the nested property with\n * @param {Object} obj The object to check the nested property in\n * @return {Boolean} `true` if the value equals the nested object property,\n * `false` otherwise.\n * @example\n *\n * const user1 = { address: { zipCode: 90210 } };\n * const user2 = { address: { zipCode: 55555 } };\n * const user3 = { name: 'Bob' };\n * const users = [ user1, user2, user3 ];\n * const isFamous = R.pathEq(['address', 'zipCode'], 90210);\n * R.filter(isFamous, users); //=> [ user1 ]\n */\n\n\nvar pathEq = /*#__PURE__*/_curry3(function pathEq(_path, val, obj) {\n return equals(path(_path, obj), val);\n});\nmodule.exports = pathEq;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar defaultTo = /*#__PURE__*/require('./defaultTo');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * If the given, non-null object has a value at the given path, returns the\n * value at that path. Otherwise returns the provided default value.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Object\n * @typedefn Idx = String | Int\n * @sig a -> [Idx] -> {a} -> a\n * @param {*} d The default value.\n * @param {Array} p The path to use.\n * @param {Object} obj The object to retrieve the nested property from.\n * @return {*} The data at `path` of the supplied object or the default value.\n * @example\n *\n * R.pathOr('N/A', ['a', 'b'], {a: {b: 2}}); //=> 2\n * R.pathOr('N/A', ['a', 'b'], {c: {b: 2}}); //=> \"N/A\"\n */\n\n\nvar pathOr = /*#__PURE__*/_curry3(function pathOr(d, p, obj) {\n return defaultTo(d, path(p, obj));\n});\nmodule.exports = pathOr;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * Returns `true` if the specified object property at given path satisfies the\n * given predicate; `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Logic\n * @typedefn Idx = String | Int\n * @sig (a -> Boolean) -> [Idx] -> {a} -> Boolean\n * @param {Function} pred\n * @param {Array} propPath\n * @param {*} obj\n * @return {Boolean}\n * @see R.propSatisfies, R.path\n * @example\n *\n * R.pathSatisfies(y => y > 0, ['x', 'y'], {x: {y: 2}}); //=> true\n */\n\n\nvar pathSatisfies = /*#__PURE__*/_curry3(function pathSatisfies(pred, propPath, obj) {\n return propPath.length > 0 && pred(path(propPath, obj));\n});\nmodule.exports = pathSatisfies;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a partial copy of an object containing only the keys specified. If\n * the key does not exist, the property is ignored.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.omit, R.props\n * @example\n *\n * R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}\n */\n\n\nvar pick = /*#__PURE__*/_curry2(function pick(names, obj) {\n var result = {};\n var idx = 0;\n while (idx < names.length) {\n if (names[idx] in obj) {\n result[names[idx]] = obj[names[idx]];\n }\n idx += 1;\n }\n return result;\n});\nmodule.exports = pick;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Similar to `pick` except that this one includes a `key: undefined` pair for\n * properties that don't exist.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> {k: v}\n * @param {Array} names an array of String property names to copy onto a new object\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties from `names` on it.\n * @see R.pick\n * @example\n *\n * R.pickAll(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}\n * R.pickAll(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, e: undefined, f: undefined}\n */\n\n\nvar pickAll = /*#__PURE__*/_curry2(function pickAll(names, obj) {\n var result = {};\n var idx = 0;\n var len = names.length;\n while (idx < len) {\n var name = names[idx];\n result[name] = obj[name];\n idx += 1;\n }\n return result;\n});\nmodule.exports = pickAll;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\n\nvar pickBy = /*#__PURE__*/_curry2(function pickBy(test, obj) {\n var result = {};\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n return result;\n});\nmodule.exports = pickBy;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _pipe = /*#__PURE__*/require('./internal/_pipe');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\nvar tail = /*#__PURE__*/require('./tail');\n\n/**\n * Performs left-to-right function composition. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * In some libraries this function is named `sequence`.\n *\n * **Note:** The result of pipe is not automatically curried.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.compose\n * @example\n *\n * const f = R.pipe(Math.pow, R.negate, R.inc);\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipe(f, g, h)(a, b) = h(g(f(a, b)))\n */\n\n\nfunction pipe() {\n if (arguments.length === 0) {\n throw new Error('pipe requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipe, arguments[0], tail(arguments)));\n}\nmodule.exports = pipe;","var composeK = /*#__PURE__*/require('./composeK');\n\nvar reverse = /*#__PURE__*/require('./reverse');\n\n/**\n * Returns the left-to-right Kleisli composition of the provided functions,\n * each of which must return a value of a type supported by [`chain`](#chain).\n *\n * `R.pipeK(f, g, h)` is equivalent to `R.pipe(f, R.chain(g), R.chain(h))`.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Function\n * @sig Chain m => ((a -> m b), (b -> m c), ..., (y -> m z)) -> (a -> m z)\n * @param {...Function}\n * @return {Function}\n * @see R.composeK\n * @deprecated since v0.26.0\n * @example\n *\n * // parseJson :: String -> Maybe *\n * // get :: String -> Object -> Maybe *\n *\n * // getStateCode :: Maybe String -> Maybe String\n * const getStateCode = R.pipeK(\n * parseJson,\n * get('user'),\n * get('address'),\n * get('state'),\n * R.compose(Maybe.of, R.toUpper)\n * );\n *\n * getStateCode('{\"user\":{\"address\":{\"state\":\"ny\"}}}');\n * //=> Just('NY')\n * getStateCode('[Invalid JSON]');\n * //=> Nothing()\n * @symb R.pipeK(f, g, h)(a) = R.chain(h, R.chain(g, f(a)))\n */\n\n\nfunction pipeK() {\n if (arguments.length === 0) {\n throw new Error('pipeK requires at least one argument');\n }\n return composeK.apply(this, reverse(arguments));\n}\nmodule.exports = pipeK;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _pipeP = /*#__PURE__*/require('./internal/_pipeP');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\nvar tail = /*#__PURE__*/require('./tail');\n\n/**\n * Performs left-to-right composition of one or more Promise-returning\n * functions. The leftmost function may have any arity; the remaining functions\n * must be unary.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category Function\n * @sig ((a -> Promise b), (b -> Promise c), ..., (y -> Promise z)) -> (a -> Promise z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeP\n * @deprecated since v0.26.0\n * @example\n *\n * // followersForUser :: String -> Promise [User]\n * const followersForUser = R.pipeP(db.getUserById, db.getFollowers);\n */\n\n\nfunction pipeP() {\n if (arguments.length === 0) {\n throw new Error('pipeP requires at least one argument');\n }\n return _arity(arguments[0].length, reduce(_pipeP, arguments[0], tail(arguments)));\n}\nmodule.exports = pipeP;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar head = /*#__PURE__*/require('./head');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar tail = /*#__PURE__*/require('./tail');\n\nvar identity = /*#__PURE__*/require('./identity');\n\n/**\n * Performs left-to-right function composition using transforming function. The leftmost function may have\n * any arity; the remaining functions must be unary.\n *\n * **Note:** The result of pipeWith is not automatically curried.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((* -> *), [((a, b, ..., n) -> o), (o -> p), ..., (x -> y), (y -> z)]) -> ((a, b, ..., n) -> z)\n * @param {...Function} functions\n * @return {Function}\n * @see R.composeWith, R.pipe\n * @example\n *\n * const pipeWhileNotNil = R.pipeWith((f, res) => R.isNil(res) ? res : f(res));\n * const f = pipeWhileNotNil([Math.pow, R.negate, R.inc])\n *\n * f(3, 4); // -(3^4) + 1\n * @symb R.pipeWith(f)([g, h, i])(...args) = f(i, f(h, f(g, ...args)))\n */\n\n\nvar pipeWith = /*#__PURE__*/_curry2(function pipeWith(xf, list) {\n if (list.length <= 0) {\n return identity;\n }\n\n var headList = head(list);\n var tailList = tail(list);\n\n return _arity(headList.length, function () {\n return _reduce(function (result, f) {\n return xf.call(this, f, result);\n }, headList.apply(this, arguments), tailList);\n });\n});\nmodule.exports = pipeWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar map = /*#__PURE__*/require('./map');\n\nvar prop = /*#__PURE__*/require('./prop');\n\n/**\n * Returns a new list by plucking the same named property off all objects in\n * the list supplied.\n *\n * `pluck` will work on\n * any [functor](https://github.com/fantasyland/fantasy-land#functor) in\n * addition to arrays, as it is equivalent to `R.map(R.prop(k), f)`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Functor f => k -> f {k: v} -> f v\n * @param {Number|String} key The key name to pluck off of each object.\n * @param {Array} f The array or functor to consider.\n * @return {Array} The list of values for the given key.\n * @see R.props\n * @example\n *\n * var getAges = R.pluck('age');\n * getAges([{name: 'fred', age: 29}, {name: 'wilma', age: 27}]); //=> [29, 27]\n *\n * R.pluck(0, [[1, 2], [3, 4]]); //=> [1, 3]\n * R.pluck('val', {a: {val: 3}, b: {val: 5}}); //=> {a: 3, b: 5}\n * @symb R.pluck('x', [{x: 1, y: 2}, {x: 3, y: 4}, {x: 5, y: 6}]) = [1, 3, 5]\n * @symb R.pluck(0, [[1, 2], [3, 4], [5, 6]]) = [1, 3, 5]\n */\n\n\nvar pluck = /*#__PURE__*/_curry2(function pluck(p, list) {\n return map(prop(p), list);\n});\nmodule.exports = pluck;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a new list with the given element at the front, followed by the\n * contents of the list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig a -> [a] -> [a]\n * @param {*} el The item to add to the head of the output list.\n * @param {Array} list The array to add to the tail of the output list.\n * @return {Array} A new array.\n * @see R.append\n * @example\n *\n * R.prepend('fee', ['fi', 'fo', 'fum']); //=> ['fee', 'fi', 'fo', 'fum']\n */\n\n\nvar prepend = /*#__PURE__*/_curry2(function prepend(el, list) {\n return _concat([el], list);\n});\nmodule.exports = prepend;","var multiply = /*#__PURE__*/require('./multiply');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Multiplies together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The product of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.product([2,4,6,8,100,1]); //=> 38400\n */\n\n\nvar product = /*#__PURE__*/reduce(multiply, 1);\nmodule.exports = product;","var _map = /*#__PURE__*/require('./internal/_map');\n\nvar identity = /*#__PURE__*/require('./identity');\n\nvar pickAll = /*#__PURE__*/require('./pickAll');\n\nvar useWith = /*#__PURE__*/require('./useWith');\n\n/**\n * Reasonable analog to SQL `select` statement.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @category Relation\n * @sig [k] -> [{k: v}] -> [{k: v}]\n * @param {Array} props The property names to project\n * @param {Array} objs The objects to query\n * @return {Array} An array of objects with just the `props` properties.\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond', grade: 2};\n * const fred = {name: 'Fred', age: 12, hair: 'brown', grade: 7};\n * const kids = [abby, fred];\n * R.project(['name', 'grade'], kids); //=> [{name: 'Abby', grade: 2}, {name: 'Fred', grade: 7}]\n */\n\n\nvar project = /*#__PURE__*/useWith(_map, [pickAll, identity]); // passing `identity` gives correct arity\nmodule.exports = project;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar path = /*#__PURE__*/require('./path');\n\n/**\n * Returns a function that when supplied an object returns the indicated\n * property of that object, if it exists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig s -> {s: a} -> a | Undefined\n * @param {String} p The property name\n * @param {Object} obj The object to query\n * @return {*} The value at `obj.p`.\n * @see R.path\n * @example\n *\n * R.prop('x', {x: 100}); //=> 100\n * R.prop('x', {}); //=> undefined\n * R.compose(R.inc, R.prop('x'))({ x: 3 }) //=> 4\n */\n\nvar prop = /*#__PURE__*/_curry2(function prop(p, obj) {\n return path([p], obj);\n});\nmodule.exports = prop;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar equals = /*#__PURE__*/require('./equals');\n\n/**\n * Returns `true` if the specified object property is equal, in\n * [`R.equals`](#equals) terms, to the given value; `false` otherwise.\n * You can test multiple properties with [`R.whereEq`](#whereEq).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig String -> a -> Object -> Boolean\n * @param {String} name\n * @param {*} val\n * @param {*} obj\n * @return {Boolean}\n * @see R.whereEq, R.propSatisfies, R.equals\n * @example\n *\n * const abby = {name: 'Abby', age: 7, hair: 'blond'};\n * const fred = {name: 'Fred', age: 12, hair: 'brown'};\n * const rusty = {name: 'Rusty', age: 10, hair: 'brown'};\n * const alois = {name: 'Alois', age: 15, disposition: 'surly'};\n * const kids = [abby, fred, rusty, alois];\n * const hasBrownHair = R.propEq('hair', 'brown');\n * R.filter(hasBrownHair, kids); //=> [fred, rusty]\n */\n\n\nvar propEq = /*#__PURE__*/_curry3(function propEq(name, val, obj) {\n return equals(val, obj[name]);\n});\nmodule.exports = propEq;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar is = /*#__PURE__*/require('./is');\n\n/**\n * Returns `true` if the specified object property is of the given type;\n * `false` otherwise.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Type\n * @sig Type -> String -> Object -> Boolean\n * @param {Function} type\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.is, R.propSatisfies\n * @example\n *\n * R.propIs(Number, 'x', {x: 1, y: 2}); //=> true\n * R.propIs(Number, 'x', {x: 'foo'}); //=> false\n * R.propIs(Number, 'x', {}); //=> false\n */\n\n\nvar propIs = /*#__PURE__*/_curry3(function propIs(type, name, obj) {\n return is(type, obj[name]);\n});\nmodule.exports = propIs;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar pathOr = /*#__PURE__*/require('./pathOr');\n\n/**\n * If the given, non-null object has an own property with the specified name,\n * returns the value of that property. Otherwise returns the provided default\n * value.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Object\n * @sig a -> String -> Object -> a\n * @param {*} val The default value.\n * @param {String} p The name of the property to return.\n * @param {Object} obj The object to query.\n * @return {*} The value of given property of the supplied object or the default value.\n * @example\n *\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const favorite = R.prop('favoriteLibrary');\n * const favoriteWithDefault = R.propOr('Ramda', 'favoriteLibrary');\n *\n * favorite(alice); //=> undefined\n * favoriteWithDefault(alice); //=> 'Ramda'\n */\n\n\nvar propOr = /*#__PURE__*/_curry3(function propOr(val, p, obj) {\n return pathOr(val, [p], obj);\n});\nmodule.exports = propOr;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Returns `true` if the specified object property satisfies the given\n * predicate; `false` otherwise. You can test multiple properties with\n * [`R.where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Logic\n * @sig (a -> Boolean) -> String -> {String: a} -> Boolean\n * @param {Function} pred\n * @param {String} name\n * @param {*} obj\n * @return {Boolean}\n * @see R.where, R.propEq, R.propIs\n * @example\n *\n * R.propSatisfies(x => x > 0, 'x', {x: 1, y: 2}); //=> true\n */\n\n\nvar propSatisfies = /*#__PURE__*/_curry3(function propSatisfies(pred, name, obj) {\n return pred(obj[name]);\n});\nmodule.exports = propSatisfies;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Acts as multiple `prop`: array of keys in, array of values out. Preserves\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig [k] -> {k: v} -> [v]\n * @param {Array} ps The property names to fetch\n * @param {Object} obj The object to query\n * @return {Array} The corresponding values or partially applied function.\n * @example\n *\n * R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2]\n * R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1, 2]\n *\n * const fullName = R.compose(R.join(' '), R.props(['first', 'last']));\n * fullName({last: 'Bullet-Tooth', age: 33, first: 'Tony'}); //=> 'Tony Bullet-Tooth'\n */\n\n\nvar props = /*#__PURE__*/_curry2(function props(ps, obj) {\n var len = ps.length;\n var out = [];\n var idx = 0;\n\n while (idx < len) {\n out[idx] = obj[ps[idx]];\n idx += 1;\n }\n\n return out;\n});\nmodule.exports = props;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isNumber = /*#__PURE__*/require('./internal/_isNumber');\n\n/**\n * Returns a list of numbers from `from` (inclusive) to `to` (exclusive).\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> Number -> [Number]\n * @param {Number} from The first number in the list.\n * @param {Number} to One more than the last number in the list.\n * @return {Array} The list of numbers in the set `[a, b)`.\n * @example\n *\n * R.range(1, 5); //=> [1, 2, 3, 4]\n * R.range(50, 53); //=> [50, 51, 52]\n */\n\n\nvar range = /*#__PURE__*/_curry2(function range(from, to) {\n if (!(_isNumber(from) && _isNumber(to))) {\n throw new TypeError('Both arguments to range must be numbers');\n }\n var result = [];\n var n = from;\n while (n < to) {\n result.push(n);\n n += 1;\n }\n return result;\n});\nmodule.exports = range;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\n\nvar reduce = /*#__PURE__*/_curry3(_reduce);\nmodule.exports = reduce;","var _curryN = /*#__PURE__*/require('./internal/_curryN');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xreduceBy = /*#__PURE__*/require('./internal/_xreduceBy');\n\n/**\n * Groups the elements of the list according to the result of calling\n * the String-returning function `keyFn` on each element and reduces the elements\n * of each group to a single value via the reducer function `valueFn`.\n *\n * This function is basically a more general [`groupBy`](#groupBy) function.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category List\n * @sig ((a, b) -> a) -> a -> (b -> String) -> [b] -> {String: a}\n * @param {Function} valueFn The function that reduces the elements of each group to a single\n * value. Receives two values, accumulator for a particular group and the current element.\n * @param {*} acc The (initial) accumulator value for each group.\n * @param {Function} keyFn The function that maps the list's element into a key.\n * @param {Array} list The array to group.\n * @return {Object} An object with the output of `keyFn` for keys, mapped to the output of\n * `valueFn` for elements which produced that key when passed to `keyFn`.\n * @see R.groupBy, R.reduce\n * @example\n *\n * const groupNames = (acc, {name}) => acc.concat(name)\n * const toGrade = ({score}) =>\n * score < 65 ? 'F' :\n * score < 70 ? 'D' :\n * score < 80 ? 'C' :\n * score < 90 ? 'B' : 'A'\n *\n * var students = [\n * {name: 'Abby', score: 83},\n * {name: 'Bart', score: 62},\n * {name: 'Curt', score: 88},\n * {name: 'Dora', score: 92},\n * ]\n *\n * reduceBy(groupNames, [], toGrade, students)\n * //=> {\"A\": [\"Dora\"], \"B\": [\"Abby\", \"Curt\"], \"F\": [\"Bart\"]}\n */\n\n\nvar reduceBy = /*#__PURE__*/_curryN(4, [], /*#__PURE__*/_dispatchable([], _xreduceBy, function reduceBy(valueFn, valueAcc, keyFn, list) {\n return _reduce(function (acc, elt) {\n var key = keyFn(elt);\n acc[key] = valueFn(_has(key, acc) ? acc[key] : valueAcc, elt);\n return acc;\n }, {}, list);\n}));\nmodule.exports = reduceBy;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * Similar to [`reduce`](#reduce), except moves through the input list from the\n * right to the left.\n *\n * The iterator function receives two values: *(value, acc)*, while the arguments'\n * order of `reduce`'s iterator function is *(acc, value)*.\n *\n * Note: `R.reduceRight` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduceRight` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight#Description\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> b) -> b -> [a] -> b\n * @param {Function} fn The iterator function. Receives two values, the current element from the array\n * and the accumulator.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.addIndex\n * @example\n *\n * R.reduceRight(R.subtract, 0, [1, 2, 3, 4]) // => (1 - (2 - (3 - (4 - 0)))) = -2\n * // - -2\n * // / \\ / \\\n * // 1 - 1 3\n * // / \\ / \\\n * // 2 - ==> 2 -1\n * // / \\ / \\\n * // 3 - 3 4\n * // / \\ / \\\n * // 4 0 4 0\n *\n * @symb R.reduceRight(f, a, [b, c, d]) = f(b, f(c, f(d, a)))\n */\n\n\nvar reduceRight = /*#__PURE__*/_curry3(function reduceRight(fn, acc, list) {\n var idx = list.length - 1;\n while (idx >= 0) {\n acc = fn(list[idx], acc);\n idx -= 1;\n }\n return acc;\n});\nmodule.exports = reduceRight;","var _curryN = /*#__PURE__*/require('./internal/_curryN');\n\nvar _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _reduced = /*#__PURE__*/require('./internal/_reduced');\n\n/**\n * Like [`reduce`](#reduce), `reduceWhile` returns a single item by iterating\n * through the list, successively calling the iterator function. `reduceWhile`\n * also takes a predicate that is evaluated before each step. If the predicate\n * returns `false`, it \"short-circuits\" the iteration and returns the current\n * value of the accumulator.\n *\n * @func\n * @memberOf R\n * @since v0.22.0\n * @category List\n * @sig ((a, b) -> Boolean) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} pred The predicate. It is passed the accumulator and the\n * current element.\n * @param {Function} fn The iterator function. Receives two values, the\n * accumulator and the current element.\n * @param {*} a The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced\n * @example\n *\n * const isOdd = (acc, x) => x % 2 === 1;\n * const xs = [1, 3, 5, 60, 777, 800];\n * R.reduceWhile(isOdd, R.add, 0, xs); //=> 9\n *\n * const ys = [2, 4, 6]\n * R.reduceWhile(isOdd, R.add, 111, ys); //=> 111\n */\n\n\nvar reduceWhile = /*#__PURE__*/_curryN(4, [], function _reduceWhile(pred, fn, a, list) {\n return _reduce(function (acc, x) {\n return pred(acc, x) ? fn(acc, x) : _reduced(acc);\n }, a, list);\n});\nmodule.exports = reduceWhile;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _reduced = /*#__PURE__*/require('./internal/_reduced');\n\n/**\n * Returns a value wrapped to indicate that it is the final value of the reduce\n * and transduce functions. The returned value should be considered a black\n * box: the internal structure is not guaranteed to be stable.\n *\n * Note: this optimization is only available to the below functions:\n * - [`reduce`](#reduce)\n * - [`reduceWhile`](#reduceWhile)\n * - [`transduce`](#transduce)\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category List\n * @sig a -> *\n * @param {*} x The final value of the reduce.\n * @return {*} The wrapped value.\n * @see R.reduce, R.reduceWhile, R.transduce\n * @example\n *\n * R.reduce(\n * (acc, item) => item > 3 ? R.reduced(acc) : acc.concat(item),\n * [],\n * [1, 2, 3, 4, 5]) // [1, 2, 3]\n */\n\n\nvar reduced = /*#__PURE__*/_curry1(_reduced);\nmodule.exports = reduced;","var _complement = /*#__PURE__*/require('./internal/_complement');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar filter = /*#__PURE__*/require('./filter');\n\n/**\n * The complement of [`filter`](#filter).\n *\n * Acts as a transducer if a transformer is given in list position. Filterable\n * objects include plain objects or any object that has a filter method such\n * as `Array`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Filterable f => (a -> Boolean) -> f a -> f a\n * @param {Function} pred\n * @param {Array} filterable\n * @return {Array}\n * @see R.filter, R.transduce, R.addIndex\n * @example\n *\n * const isOdd = (n) => n % 2 === 1;\n *\n * R.reject(isOdd, [1, 2, 3, 4]); //=> [2, 4]\n *\n * R.reject(isOdd, {a: 1, b: 2, c: 3, d: 4}); //=> {b: 2, d: 4}\n */\n\n\nvar reject = /*#__PURE__*/_curry2(function reject(pred, filterable) {\n return filter(_complement(pred), filterable);\n});\nmodule.exports = reject;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Removes the sub-list of `list` starting at index `start` and containing\n * `count` elements. _Note that this is not destructive_: it returns a copy of\n * the list with the changes.\n * <small>No lists have been harmed in the application of this function.</small>\n *\n * @func\n * @memberOf R\n * @since v0.2.2\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @param {Number} start The position to start removing elements\n * @param {Number} count The number of elements to remove\n * @param {Array} list The list to remove from\n * @return {Array} A new Array with `count` elements from `start` removed.\n * @see R.without\n * @example\n *\n * R.remove(2, 3, [1,2,3,4,5,6,7,8]); //=> [1,2,6,7,8]\n */\n\n\nvar remove = /*#__PURE__*/_curry3(function remove(start, count, list) {\n var result = Array.prototype.slice.call(list, 0);\n result.splice(start, count);\n return result;\n});\nmodule.exports = remove;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar always = /*#__PURE__*/require('./always');\n\nvar times = /*#__PURE__*/require('./times');\n\n/**\n * Returns a fixed list of size `n` containing a specified identical value.\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category List\n * @sig a -> n -> [a]\n * @param {*} value The value to repeat.\n * @param {Number} n The desired size of the output list.\n * @return {Array} A new array containing `n` `value`s.\n * @see R.times\n * @example\n *\n * R.repeat('hi', 5); //=> ['hi', 'hi', 'hi', 'hi', 'hi']\n *\n * const obj = {};\n * const repeatedObjs = R.repeat(obj, 5); //=> [{}, {}, {}, {}, {}]\n * repeatedObjs[0] === repeatedObjs[1]; //=> true\n * @symb R.repeat(a, 0) = []\n * @symb R.repeat(a, 1) = [a]\n * @symb R.repeat(a, 2) = [a, a]\n */\n\n\nvar repeat = /*#__PURE__*/_curry2(function repeat(value, n) {\n return times(always(value), n);\n});\nmodule.exports = repeat;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Replace a substring or regex match in a string with a replacement.\n *\n * The first two parameters correspond to the parameters of the\n * `String.prototype.replace()` function, so the second parameter can also be a\n * function.\n *\n * @func\n * @memberOf R\n * @since v0.7.0\n * @category String\n * @sig RegExp|String -> String -> String -> String\n * @param {RegExp|String} pattern A regular expression or a substring to match.\n * @param {String} replacement The string to replace the matches with.\n * @param {String} str The String to do the search and replacement in.\n * @return {String} The result.\n * @example\n *\n * R.replace('foo', 'bar', 'foo foo foo'); //=> 'bar foo foo'\n * R.replace(/foo/, 'bar', 'foo foo foo'); //=> 'bar foo foo'\n *\n * // Use the \"g\" (global) flag to replace all occurrences:\n * R.replace(/foo/g, 'bar', 'foo foo foo'); //=> 'bar bar bar'\n */\n\n\nvar replace = /*#__PURE__*/_curry3(function replace(regex, replacement, str) {\n return str.replace(regex, replacement);\n});\nmodule.exports = replace;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _isString = /*#__PURE__*/require('./internal/_isString');\n\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\n\nvar reverse = /*#__PURE__*/_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\nmodule.exports = reverse;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Scan is similar to [`reduce`](#reduce), but returns a list of successively\n * reduced values from the left\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> [a]\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {Array} A list of all intermediately reduced values.\n * @see R.reduce, R.mapAccum\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const factorials = R.scan(R.multiply, 1, numbers); //=> [1, 1, 2, 6, 24]\n * @symb R.scan(f, a, [b, c]) = [a, f(a, b), f(f(a, b), c)]\n */\n\n\nvar scan = /*#__PURE__*/_curry3(function scan(fn, acc, list) {\n var idx = 0;\n var len = list.length;\n var result = [acc];\n while (idx < len) {\n acc = fn(acc, list[idx]);\n result[idx + 1] = acc;\n idx += 1;\n }\n return result;\n});\nmodule.exports = scan;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar ap = /*#__PURE__*/require('./ap');\n\nvar map = /*#__PURE__*/require('./map');\n\nvar prepend = /*#__PURE__*/require('./prepend');\n\nvar reduceRight = /*#__PURE__*/require('./reduceRight');\n\n/**\n * Transforms a [Traversable](https://github.com/fantasyland/fantasy-land#traversable)\n * of [Applicative](https://github.com/fantasyland/fantasy-land#applicative) into an\n * Applicative of Traversable.\n *\n * Dispatches to the `sequence` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> t (f a) -> f (t a)\n * @param {Function} of\n * @param {*} traversable\n * @return {*}\n * @see R.traverse\n * @example\n *\n * R.sequence(Maybe.of, [Just(1), Just(2), Just(3)]); //=> Just([1, 2, 3])\n * R.sequence(Maybe.of, [Just(1), Just(2), Nothing()]); //=> Nothing()\n *\n * R.sequence(R.of, Just([1, 2, 3])); //=> [Just(1), Just(2), Just(3)]\n * R.sequence(R.of, Nothing()); //=> [Nothing()]\n */\n\n\nvar sequence = /*#__PURE__*/_curry2(function sequence(of, traversable) {\n return typeof traversable.sequence === 'function' ? traversable.sequence(of) : reduceRight(function (x, acc) {\n return ap(map(prepend, x), acc);\n }, of([]), traversable);\n});\nmodule.exports = sequence;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar always = /*#__PURE__*/require('./always');\n\nvar over = /*#__PURE__*/require('./over');\n\n/**\n * Returns the result of \"setting\" the portion of the given data structure\n * focused by the given lens to the given value.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> a -> s -> s\n * @param {Lens} lens\n * @param {*} v\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}\n * R.set(xLens, 8, {x: 1, y: 2}); //=> {x: 8, y: 2}\n */\n\n\nvar set = /*#__PURE__*/_curry3(function set(lens, v, x) {\n return over(lens, always(v), x);\n});\nmodule.exports = set;","var _checkForMethod = /*#__PURE__*/require('./internal/_checkForMethod');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\n\nvar slice = /*#__PURE__*/_curry3( /*#__PURE__*/_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\nmodule.exports = slice;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a copy of the list, sorted according to the comparator function,\n * which should accept two values at a time and return a negative number if the\n * first value is smaller, a positive number if it's larger, and zero if they\n * are equal. Please note that this is a **copy** of the list. It does not\n * modify the original.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, a) -> Number) -> [a] -> [a]\n * @param {Function} comparator A sorting function :: a -> b -> Int\n * @param {Array} list The list to sort\n * @return {Array} a new array with its elements sorted by the comparator function.\n * @example\n *\n * const diff = function(a, b) { return a - b; };\n * R.sort(diff, [4,2,7,5]); //=> [2, 4, 5, 7]\n */\n\n\nvar sort = /*#__PURE__*/_curry2(function sort(comparator, list) {\n return Array.prototype.slice.call(list, 0).sort(comparator);\n});\nmodule.exports = sort;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Sorts the list according to the supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig Ord b => (a -> b) -> [a] -> [a]\n * @param {Function} fn\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted by the keys generated by `fn`.\n * @example\n *\n * const sortByFirstItem = R.sortBy(R.prop(0));\n * const pairs = [[-1, 1], [-2, 2], [-3, 3]];\n * sortByFirstItem(pairs); //=> [[-3, 3], [-2, 2], [-1, 1]]\n *\n * const sortByNameCaseInsensitive = R.sortBy(R.compose(R.toLower, R.prop('name')));\n * const alice = {\n * name: 'ALICE',\n * age: 101\n * };\n * const bob = {\n * name: 'Bob',\n * age: -10\n * };\n * const clara = {\n * name: 'clara',\n * age: 314.159\n * };\n * const people = [clara, bob, alice];\n * sortByNameCaseInsensitive(people); //=> [alice, bob, clara]\n */\n\n\nvar sortBy = /*#__PURE__*/_curry2(function sortBy(fn, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var aa = fn(a);\n var bb = fn(b);\n return aa < bb ? -1 : aa > bb ? 1 : 0;\n });\n});\nmodule.exports = sortBy;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Sorts a list according to a list of comparators.\n *\n * @func\n * @memberOf R\n * @since v0.23.0\n * @category Relation\n * @sig [(a, a) -> Number] -> [a] -> [a]\n * @param {Array} functions A list of comparator functions.\n * @param {Array} list The list to sort.\n * @return {Array} A new list sorted according to the comarator functions.\n * @example\n *\n * const alice = {\n * name: 'alice',\n * age: 40\n * };\n * const bob = {\n * name: 'bob',\n * age: 30\n * };\n * const clara = {\n * name: 'clara',\n * age: 40\n * };\n * const people = [clara, bob, alice];\n * const ageNameSort = R.sortWith([\n * R.descend(R.prop('age')),\n * R.ascend(R.prop('name'))\n * ]);\n * ageNameSort(people); //=> [alice, clara, bob]\n */\n\n\nvar sortWith = /*#__PURE__*/_curry2(function sortWith(fns, list) {\n return Array.prototype.slice.call(list, 0).sort(function (a, b) {\n var result = 0;\n var i = 0;\n while (result === 0 && i < fns.length) {\n result = fns[i](a, b);\n i += 1;\n }\n return result;\n });\n});\nmodule.exports = sortWith;","var invoker = /*#__PURE__*/require('./invoker');\n\n/**\n * Splits a string into an array of strings based on the given\n * separator.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category String\n * @sig (String | RegExp) -> String -> [String]\n * @param {String|RegExp} sep The pattern.\n * @param {String} str The string to separate into an array.\n * @return {Array} The array of strings from `str` separated by `str`.\n * @see R.join\n * @example\n *\n * const pathComponents = R.split('/');\n * R.tail(pathComponents('/usr/local/bin/node')); //=> ['usr', 'local', 'bin', 'node']\n *\n * R.split('.', 'a.b.c.xyz.d'); //=> ['a', 'b', 'c', 'xyz', 'd']\n */\n\n\nvar split = /*#__PURE__*/invoker(1, 'split');\nmodule.exports = split;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar length = /*#__PURE__*/require('./length');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Splits a given list or string at a given index.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig Number -> [a] -> [[a], [a]]\n * @sig Number -> String -> [String, String]\n * @param {Number} index The index where the array/string is split.\n * @param {Array|String} array The array/string to be split.\n * @return {Array}\n * @example\n *\n * R.splitAt(1, [1, 2, 3]); //=> [[1], [2, 3]]\n * R.splitAt(5, 'hello world'); //=> ['hello', ' world']\n * R.splitAt(-1, 'foobar'); //=> ['fooba', 'r']\n */\n\n\nvar splitAt = /*#__PURE__*/_curry2(function splitAt(index, array) {\n return [slice(0, index, array), slice(index, length(array), array)];\n});\nmodule.exports = splitAt;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Splits a collection into slices of the specified length.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [[a]]\n * @sig Number -> String -> [String]\n * @param {Number} n\n * @param {Array} list\n * @return {Array}\n * @example\n *\n * R.splitEvery(3, [1, 2, 3, 4, 5, 6, 7]); //=> [[1, 2, 3], [4, 5, 6], [7]]\n * R.splitEvery(3, 'foobarbaz'); //=> ['foo', 'bar', 'baz']\n */\n\n\nvar splitEvery = /*#__PURE__*/_curry2(function splitEvery(n, list) {\n if (n <= 0) {\n throw new Error('First argument to splitEvery must be a positive integer');\n }\n var result = [];\n var idx = 0;\n while (idx < list.length) {\n result.push(slice(idx, idx += n, list));\n }\n return result;\n});\nmodule.exports = splitEvery;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Takes a list and a predicate and returns a pair of lists with the following properties:\n *\n * - the result of concatenating the two output lists is equivalent to the input list;\n * - none of the elements of the first output list satisfies the predicate; and\n * - if the second output list is non-empty, its first element satisfies the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [[a], [a]]\n * @param {Function} pred The predicate that determines where the array is split.\n * @param {Array} list The array to be split.\n * @return {Array}\n * @example\n *\n * R.splitWhen(R.equals(2), [1, 2, 3, 1, 2, 3]); //=> [[1], [2, 3, 1, 2, 3]]\n */\n\n\nvar splitWhen = /*#__PURE__*/_curry2(function splitWhen(pred, list) {\n var idx = 0;\n var len = list.length;\n var prefix = [];\n\n while (idx < len && !pred(list[idx])) {\n prefix.push(list[idx]);\n idx += 1;\n }\n\n return [prefix, Array.prototype.slice.call(list, idx)];\n});\nmodule.exports = splitWhen;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar equals = /*#__PURE__*/require('./equals');\n\nvar take = /*#__PURE__*/require('./take');\n\n/**\n * Checks if a list starts with the provided sublist.\n *\n * Similarly, checks if a string starts with the provided substring.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category List\n * @sig [a] -> [a] -> Boolean\n * @sig String -> String -> Boolean\n * @param {*} prefix\n * @param {*} list\n * @return {Boolean}\n * @see R.endsWith\n * @example\n *\n * R.startsWith('a', 'abc') //=> true\n * R.startsWith('b', 'abc') //=> false\n * R.startsWith(['a'], ['a', 'b', 'c']) //=> true\n * R.startsWith(['b'], ['a', 'b', 'c']) //=> false\n */\n\n\nvar startsWith = /*#__PURE__*/_curry2(function (prefix, list) {\n return equals(take(prefix.length, list), prefix);\n});\nmodule.exports = startsWith;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Subtracts its second argument from its first argument.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig Number -> Number -> Number\n * @param {Number} a The first value.\n * @param {Number} b The second value.\n * @return {Number} The result of `a - b`.\n * @see R.add\n * @example\n *\n * R.subtract(10, 8); //=> 2\n *\n * const minus5 = R.subtract(R.__, 5);\n * minus5(17); //=> 12\n *\n * const complementaryAngle = R.subtract(90);\n * complementaryAngle(30); //=> 60\n * complementaryAngle(72); //=> 18\n */\n\n\nvar subtract = /*#__PURE__*/_curry2(function subtract(a, b) {\n return Number(a) - Number(b);\n});\nmodule.exports = subtract;","var add = /*#__PURE__*/require('./add');\n\nvar reduce = /*#__PURE__*/require('./reduce');\n\n/**\n * Adds together all the elements of a list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Math\n * @sig [Number] -> Number\n * @param {Array} list An array of numbers\n * @return {Number} The sum of all the numbers in the list.\n * @see R.reduce\n * @example\n *\n * R.sum([2,4,6,8,100,1]); //=> 121\n */\n\n\nvar sum = /*#__PURE__*/reduce(add, 0);\nmodule.exports = sum;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar concat = /*#__PURE__*/require('./concat');\n\nvar difference = /*#__PURE__*/require('./difference');\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifferenceWith, R.difference, R.differenceWith\n * @example\n *\n * R.symmetricDifference([1,2,3,4], [7,6,5,4,3]); //=> [1,2,7,6,5]\n * R.symmetricDifference([7,6,5,4,3], [1,2,3,4]); //=> [7,6,5,1,2]\n */\n\n\nvar symmetricDifference = /*#__PURE__*/_curry2(function symmetricDifference(list1, list2) {\n return concat(difference(list1, list2), difference(list2, list1));\n});\nmodule.exports = symmetricDifference;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar concat = /*#__PURE__*/require('./concat');\n\nvar differenceWith = /*#__PURE__*/require('./differenceWith');\n\n/**\n * Finds the set (i.e. no duplicates) of all elements contained in the first or\n * second list, but not both. Duplication is determined according to the value\n * returned by applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [a] -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The elements in `list1` or `list2`, but not both.\n * @see R.symmetricDifference, R.difference, R.differenceWith\n * @example\n *\n * const eqA = R.eqBy(R.prop('a'));\n * const l1 = [{a: 1}, {a: 2}, {a: 3}, {a: 4}];\n * const l2 = [{a: 3}, {a: 4}, {a: 5}, {a: 6}];\n * R.symmetricDifferenceWith(eqA, l1, l2); //=> [{a: 1}, {a: 2}, {a: 5}, {a: 6}]\n */\n\n\nvar symmetricDifferenceWith = /*#__PURE__*/_curry3(function symmetricDifferenceWith(pred, list1, list2) {\n return concat(differenceWith(pred, list1, list2), differenceWith(pred, list2, list1));\n});\nmodule.exports = symmetricDifferenceWith;","var _checkForMethod = /*#__PURE__*/require('./internal/_checkForMethod');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\n\nvar tail = /*#__PURE__*/_curry1( /*#__PURE__*/_checkForMethod('tail', /*#__PURE__*/slice(1, Infinity)));\nmodule.exports = tail;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xtake = /*#__PURE__*/require('./internal/_xtake');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns the first `n` elements of the given list, string, or\n * transducer/transformer (or object with a `take` method).\n *\n * Dispatches to the `take` method of the second argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n\n * @param {*} list\n * @return {*}\n * @see R.drop\n * @example\n *\n * R.take(1, ['foo', 'bar', 'baz']); //=> ['foo']\n * R.take(2, ['foo', 'bar', 'baz']); //=> ['foo', 'bar']\n * R.take(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.take(3, 'ramda'); //=> 'ram'\n *\n * const personnel = [\n * 'Dave Brubeck',\n * 'Paul Desmond',\n * 'Eugene Wright',\n * 'Joe Morello',\n * 'Gerry Mulligan',\n * 'Bob Bates',\n * 'Joe Dodge',\n * 'Ron Crotty'\n * ];\n *\n * const takeFive = R.take(5);\n * takeFive(personnel);\n * //=> ['Dave Brubeck', 'Paul Desmond', 'Eugene Wright', 'Joe Morello', 'Gerry Mulligan']\n * @symb R.take(-1, [a, b]) = [a, b]\n * @symb R.take(0, [a, b]) = []\n * @symb R.take(1, [a, b]) = [a]\n * @symb R.take(2, [a, b]) = [a, b]\n */\n\n\nvar take = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['take'], _xtake, function take(n, xs) {\n return slice(0, n < 0 ? Infinity : n, xs);\n}));\nmodule.exports = take;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar drop = /*#__PURE__*/require('./drop');\n\n/**\n * Returns a new list containing the last `n` elements of the given list.\n * If `n > list.length`, returns a list of `list.length` elements.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig Number -> [a] -> [a]\n * @sig Number -> String -> String\n * @param {Number} n The number of elements to return.\n * @param {Array} xs The collection to consider.\n * @return {Array}\n * @see R.dropLast\n * @example\n *\n * R.takeLast(1, ['foo', 'bar', 'baz']); //=> ['baz']\n * R.takeLast(2, ['foo', 'bar', 'baz']); //=> ['bar', 'baz']\n * R.takeLast(3, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(4, ['foo', 'bar', 'baz']); //=> ['foo', 'bar', 'baz']\n * R.takeLast(3, 'ramda'); //=> 'mda'\n */\n\n\nvar takeLast = /*#__PURE__*/_curry2(function takeLast(n, xs) {\n return drop(n >= 0 ? xs.length - n : 0, xs);\n});\nmodule.exports = takeLast;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns a new list containing the last `n` elements of a given list, passing\n * each value to the supplied predicate function, and terminating when the\n * predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropLastWhile, R.addIndex\n * @example\n *\n * const isNotOne = x => x !== 1;\n *\n * R.takeLastWhile(isNotOne, [1, 2, 3, 4]); //=> [2, 3, 4]\n *\n * R.takeLastWhile(x => x !== 'R' , 'Ramda'); //=> 'amda'\n */\n\n\nvar takeLastWhile = /*#__PURE__*/_curry2(function takeLastWhile(fn, xs) {\n var idx = xs.length - 1;\n while (idx >= 0 && fn(xs[idx])) {\n idx -= 1;\n }\n return slice(idx + 1, Infinity, xs);\n});\nmodule.exports = takeLastWhile;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xtakeWhile = /*#__PURE__*/require('./internal/_xtakeWhile');\n\nvar slice = /*#__PURE__*/require('./slice');\n\n/**\n * Returns a new list containing the first `n` elements of a given list,\n * passing each value to the supplied predicate function, and terminating when\n * the predicate function returns `false`. Excludes the element that caused the\n * predicate function to fail. The predicate function is passed one argument:\n * *(value)*.\n *\n * Dispatches to the `takeWhile` method of the second argument, if present.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig (a -> Boolean) -> [a] -> [a]\n * @sig (a -> Boolean) -> String -> String\n * @param {Function} fn The function called per iteration.\n * @param {Array} xs The collection to iterate over.\n * @return {Array} A new array.\n * @see R.dropWhile, R.transduce, R.addIndex\n * @example\n *\n * const isNotFour = x => x !== 4;\n *\n * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3]\n *\n * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram'\n */\n\n\nvar takeWhile = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) {\n var idx = 0;\n var len = xs.length;\n while (idx < len && fn(xs[idx])) {\n idx += 1;\n }\n return slice(0, idx, xs);\n}));\nmodule.exports = takeWhile;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _dispatchable = /*#__PURE__*/require('./internal/_dispatchable');\n\nvar _xtap = /*#__PURE__*/require('./internal/_xtap');\n\n/**\n * Runs the given function with the supplied object, then returns the object.\n *\n * Acts as a transducer if a transformer is given as second parameter.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig (a -> *) -> a -> a\n * @param {Function} fn The function to call with `x`. The return value of `fn` will be thrown away.\n * @param {*} x\n * @return {*} `x`.\n * @example\n *\n * const sayX = x => console.log('x is ' + x);\n * R.tap(sayX, 100); //=> 100\n * // logs 'x is 100'\n * @symb R.tap(f, a) = a\n */\n\n\nvar tap = /*#__PURE__*/_curry2( /*#__PURE__*/_dispatchable([], _xtap, function tap(fn, x) {\n fn(x);\n return x;\n}));\nmodule.exports = tap;","var _cloneRegExp = /*#__PURE__*/require('./internal/_cloneRegExp');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _isRegExp = /*#__PURE__*/require('./internal/_isRegExp');\n\nvar toString = /*#__PURE__*/require('./toString');\n\n/**\n * Determines whether a given string matches a given regular expression.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category String\n * @sig RegExp -> String -> Boolean\n * @param {RegExp} pattern\n * @param {String} str\n * @return {Boolean}\n * @see R.match\n * @example\n *\n * R.test(/^x/, 'xyz'); //=> true\n * R.test(/^y/, 'xyz'); //=> false\n */\n\n\nvar test = /*#__PURE__*/_curry2(function test(pattern, str) {\n if (!_isRegExp(pattern)) {\n throw new TypeError('‘test’ requires a value of type RegExp as its first argument; received ' + toString(pattern));\n }\n return _cloneRegExp(pattern).test(str);\n});\nmodule.exports = test;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _assertPromise = /*#__PURE__*/require('./internal/_assertPromise');\n\n/**\n * Returns the result of applying the onSuccess function to the value inside\n * a successfully resolved promise. This is useful for working with promises\n * inside function compositions.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig (a -> b) -> (Promise e a) -> (Promise e b)\n * @sig (a -> (Promise e b)) -> (Promise e a) -> (Promise e b)\n * @param {Function} onSuccess The function to apply. Can return a value or a promise of a value.\n * @param {Promise} p\n * @return {Promise} The result of calling `p.then(onSuccess)`\n * @see R.otherwise\n * @example\n *\n * var makeQuery = (email) => ({ query: { email }});\n *\n * //getMemberName :: String -> Promise ({firstName, lastName})\n * var getMemberName = R.pipe(\n * makeQuery,\n * fetchMember,\n * R.then(R.pick(['firstName', 'lastName']))\n * );\n */\n\n\nvar then = /*#__PURE__*/_curry2(function then(f, p) {\n _assertPromise('then', p);\n\n return p.then(f);\n});\nmodule.exports = then;","var curryN = /*#__PURE__*/require('./curryN');\n\nvar _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Creates a thunk out of a function. A thunk delays a calculation until\n * its result is needed, providing lazy evaluation of arguments.\n *\n * @func\n * @memberOf R\n * @category Function\n * @sig ((a, b, ..., j) -> k) -> (a, b, ..., j) -> (() -> k)\n * @param {Function} fn A function to wrap in a thunk\n * @return {Function} Expects arguments for `fn` and returns a new function\n * that, when called, applies those arguments to `fn`.\n * @see R.partial, R.partialRight\n * @example\n *\n * R.thunkify(R.identity)(42)(); //=> 42\n * R.thunkify((a, b) => a + b)(25, 17)(); //=> 42\n */\n\n\nvar thunkify = /*#__PURE__*/_curry1(function thunkify(fn) {\n return curryN(fn.length, function createThunk() {\n var fnArgs = arguments;\n return function invokeThunk() {\n return fn.apply(this, fnArgs);\n };\n });\n});\n\nmodule.exports = thunkify;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Calls an input function `n` times, returning an array containing the results\n * of those function calls.\n *\n * `fn` is passed one argument: The current value of `n`, which begins at `0`\n * and is gradually incremented to `n - 1`.\n *\n * @func\n * @memberOf R\n * @since v0.2.3\n * @category List\n * @sig (Number -> a) -> Number -> [a]\n * @param {Function} fn The function to invoke. Passed one argument, the current value of `n`.\n * @param {Number} n A value between `0` and `n - 1`. Increments after each function call.\n * @return {Array} An array containing the return values of all calls to `fn`.\n * @see R.repeat\n * @example\n *\n * R.times(R.identity, 5); //=> [0, 1, 2, 3, 4]\n * @symb R.times(f, 0) = []\n * @symb R.times(f, 1) = [f(0)]\n * @symb R.times(f, 2) = [f(0), f(1)]\n */\n\n\nvar times = /*#__PURE__*/_curry2(function times(fn, n) {\n var len = Number(n);\n var idx = 0;\n var list;\n\n if (len < 0 || isNaN(len)) {\n throw new RangeError('n must be a non-negative number');\n }\n list = new Array(len);\n while (idx < len) {\n list[idx] = fn(idx);\n idx += 1;\n }\n return list;\n});\nmodule.exports = times;","var invoker = /*#__PURE__*/require('./invoker');\n\n/**\n * The lower case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to lower case.\n * @return {String} The lower case version of `str`.\n * @see R.toUpper\n * @example\n *\n * R.toLower('XYZ'); //=> 'xyz'\n */\n\n\nvar toLower = /*#__PURE__*/invoker(0, 'toLowerCase');\nmodule.exports = toLower;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Converts an object into an array of key, value arrays. Only the object's\n * own properties are used.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own properties.\n * @see R.fromPairs\n * @example\n *\n * R.toPairs({a: 1, b: 2, c: 3}); //=> [['a', 1], ['b', 2], ['c', 3]]\n */\n\n\nvar toPairs = /*#__PURE__*/_curry1(function toPairs(obj) {\n var pairs = [];\n for (var prop in obj) {\n if (_has(prop, obj)) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n }\n return pairs;\n});\nmodule.exports = toPairs;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Converts an object into an array of key, value arrays. The object's own\n * properties and prototype properties are used. Note that the order of the\n * output array is not guaranteed to be consistent across different JS\n * platforms.\n *\n * @func\n * @memberOf R\n * @since v0.4.0\n * @category Object\n * @sig {String: *} -> [[String,*]]\n * @param {Object} obj The object to extract from\n * @return {Array} An array of key, value arrays from the object's own\n * and prototype properties.\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.toPairsIn(f); //=> [['x','X'], ['y','Y']]\n */\n\n\nvar toPairsIn = /*#__PURE__*/_curry1(function toPairsIn(obj) {\n var pairs = [];\n for (var prop in obj) {\n pairs[pairs.length] = [prop, obj[prop]];\n }\n return pairs;\n});\nmodule.exports = toPairsIn;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar _toString = /*#__PURE__*/require('./internal/_toString');\n\n/**\n * Returns the string representation of the given value. `eval`'ing the output\n * should result in a value equivalent to the input value. Many of the built-in\n * `toString` methods do not satisfy this requirement.\n *\n * If the given value is an `[object Object]` with a `toString` method other\n * than `Object.prototype.toString`, this method is invoked with no arguments\n * to produce the return value. This means user-defined constructor functions\n * can provide a suitable `toString` method. For example:\n *\n * function Point(x, y) {\n * this.x = x;\n * this.y = y;\n * }\n *\n * Point.prototype.toString = function() {\n * return 'new Point(' + this.x + ', ' + this.y + ')';\n * };\n *\n * R.toString(new Point(1, 2)); //=> 'new Point(1, 2)'\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category String\n * @sig * -> String\n * @param {*} val\n * @return {String}\n * @example\n *\n * R.toString(42); //=> '42'\n * R.toString('abc'); //=> '\"abc\"'\n * R.toString([1, 2, 3]); //=> '[1, 2, 3]'\n * R.toString({foo: 1, bar: 2, baz: 3}); //=> '{\"bar\": 2, \"baz\": 3, \"foo\": 1}'\n * R.toString(new Date('2001-02-03T04:05:06Z')); //=> 'new Date(\"2001-02-03T04:05:06.000Z\")'\n */\n\n\nvar toString = /*#__PURE__*/_curry1(function toString(val) {\n return _toString(val, []);\n});\nmodule.exports = toString;","var invoker = /*#__PURE__*/require('./invoker');\n\n/**\n * The upper case version of a string.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to upper case.\n * @return {String} The upper case version of `str`.\n * @see R.toLower\n * @example\n *\n * R.toUpper('abc'); //=> 'ABC'\n */\n\n\nvar toUpper = /*#__PURE__*/invoker(0, 'toUpperCase');\nmodule.exports = toUpper;","var _reduce = /*#__PURE__*/require('./internal/_reduce');\n\nvar _xwrap = /*#__PURE__*/require('./internal/_xwrap');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Initializes a transducer using supplied iterator function. Returns a single\n * item by iterating through the list, successively calling the transformed\n * iterator function and passing it an accumulator value and the current value\n * from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It will be\n * wrapped as a transformer to initialize the transducer. A transformer can be\n * passed directly in place of an iterator function. In both cases, iteration\n * may be stopped early with the [`R.reduced`](#reduced) function.\n *\n * A transducer is a function that accepts a transformer and returns a\n * transformer and can be composed directly.\n *\n * A transformer is an an object that provides a 2-arity reducing iterator\n * function, step, 0-arity initial value function, init, and 1-arity result\n * extraction function, result. The step function is used as the iterator\n * function in reduce. The result function is used to convert the final\n * accumulator into the return type and in most cases is\n * [`R.identity`](#identity). The init function can be used to provide an\n * initial accumulator, but is ignored by transduce.\n *\n * The iteration is performed with [`R.reduce`](#reduce) after initializing the transducer.\n *\n * @func\n * @memberOf R\n * @since v0.12.0\n * @category List\n * @sig (c -> c) -> ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} xf The transducer function. Receives a transformer and returns a transformer.\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array. Wrapped as transformer, if necessary, and used to\n * initialize the transducer\n * @param {*} acc The initial accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduce, R.reduced, R.into\n * @example\n *\n * const numbers = [1, 2, 3, 4];\n * const transducer = R.compose(R.map(R.add(1)), R.take(2));\n * R.transduce(transducer, R.flip(R.append), [], numbers); //=> [2, 3]\n *\n * const isOdd = (x) => x % 2 === 1;\n * const firstOddTransducer = R.compose(R.filter(isOdd), R.take(1));\n * R.transduce(firstOddTransducer, R.flip(R.append), [], R.range(0, 100)); //=> [1]\n */\n\n\nvar transduce = /*#__PURE__*/curryN(4, function transduce(xf, fn, acc, list) {\n return _reduce(xf(typeof fn === 'function' ? _xwrap(fn) : fn), acc, list);\n});\nmodule.exports = transduce;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Transposes the rows and columns of a 2D list.\n * When passed a list of `n` lists of length `x`,\n * returns a list of `x` lists of length `n`.\n *\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [[a]] -> [[a]]\n * @param {Array} list A 2D list\n * @return {Array} A 2D list\n * @example\n *\n * R.transpose([[1, 'a'], [2, 'b'], [3, 'c']]) //=> [[1, 2, 3], ['a', 'b', 'c']]\n * R.transpose([[1, 2, 3], ['a', 'b', 'c']]) //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n *\n * // If some of the rows are shorter than the following rows, their elements are skipped:\n * R.transpose([[10, 11], [20], [], [30, 31, 32]]) //=> [[10, 20, 30], [11, 31], [32]]\n * @symb R.transpose([[a], [b], [c]]) = [a, b, c]\n * @symb R.transpose([[a, b], [c, d]]) = [[a, c], [b, d]]\n * @symb R.transpose([[a, b], [c]]) = [[a, c], [b]]\n */\n\n\nvar transpose = /*#__PURE__*/_curry1(function transpose(outerlist) {\n var i = 0;\n var result = [];\n while (i < outerlist.length) {\n var innerlist = outerlist[i];\n var j = 0;\n while (j < innerlist.length) {\n if (typeof result[j] === 'undefined') {\n result[j] = [];\n }\n result[j].push(innerlist[j]);\n j += 1;\n }\n i += 1;\n }\n return result;\n});\nmodule.exports = transpose;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar map = /*#__PURE__*/require('./map');\n\nvar sequence = /*#__PURE__*/require('./sequence');\n\n/**\n * Maps an [Applicative](https://github.com/fantasyland/fantasy-land#applicative)-returning\n * function over a [Traversable](https://github.com/fantasyland/fantasy-land#traversable),\n * then uses [`sequence`](#sequence) to transform the resulting Traversable of Applicative\n * into an Applicative of Traversable.\n *\n * Dispatches to the `traverse` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig (Applicative f, Traversable t) => (a -> f a) -> (a -> f b) -> t a -> f (t b)\n * @param {Function} of\n * @param {Function} f\n * @param {*} traversable\n * @return {*}\n * @see R.sequence\n * @example\n *\n * // Returns `Maybe.Nothing` if the given divisor is `0`\n * const safeDiv = n => d => d === 0 ? Maybe.Nothing() : Maybe.Just(n / d)\n *\n * R.traverse(Maybe.of, safeDiv(10), [2, 4, 5]); //=> Maybe.Just([5, 2.5, 2])\n * R.traverse(Maybe.of, safeDiv(10), [2, 0, 5]); //=> Maybe.Nothing\n */\n\n\nvar traverse = /*#__PURE__*/_curry3(function traverse(of, f, traversable) {\n return typeof traversable['fantasy-land/traverse'] === 'function' ? traversable['fantasy-land/traverse'](f, of) : sequence(of, map(f, traversable));\n});\nmodule.exports = traverse;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar ws = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' + '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028' + '\\u2029\\uFEFF';\nvar zeroWidth = '\\u200b';\nvar hasProtoTrim = typeof String.prototype.trim === 'function';\n/**\n * Removes (strips) whitespace from both ends of the string.\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category String\n * @sig String -> String\n * @param {String} str The string to trim.\n * @return {String} Trimmed version of `str`.\n * @example\n *\n * R.trim(' xyz '); //=> 'xyz'\n * R.map(R.trim, R.split(',', 'x, y, z')); //=> ['x', 'y', 'z']\n */\nvar trim = !hasProtoTrim || /*#__PURE__*/ws.trim() || ! /*#__PURE__*/zeroWidth.trim() ? /*#__PURE__*/_curry1(function trim(str) {\n var beginRx = new RegExp('^[' + ws + '][' + ws + ']*');\n var endRx = new RegExp('[' + ws + '][' + ws + ']*$');\n return str.replace(beginRx, '').replace(endRx, '');\n}) : /*#__PURE__*/_curry1(function trim(str) {\n return str.trim();\n});\nmodule.exports = trim;","var _arity = /*#__PURE__*/require('./internal/_arity');\n\nvar _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * `tryCatch` takes two functions, a `tryer` and a `catcher`. The returned\n * function evaluates the `tryer`; if it does not throw, it simply returns the\n * result. If the `tryer` *does* throw, the returned function evaluates the\n * `catcher` function and returns its result. Note that for effective\n * composition with this function, both the `tryer` and `catcher` functions\n * must return the same type of results.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Function\n * @sig (...x -> a) -> ((e, ...x) -> a) -> (...x -> a)\n * @param {Function} tryer The function that may throw.\n * @param {Function} catcher The function that will be evaluated if `tryer` throws.\n * @return {Function} A new function that will catch exceptions and send then to the catcher.\n * @example\n *\n * R.tryCatch(R.prop('x'), R.F)({x: true}); //=> true\n * R.tryCatch(() => { throw 'foo'}, R.always('catched'))('bar') // => 'catched'\n * R.tryCatch(R.times(R.identity), R.always([]))('s') // => []\n `` */\n\n\nvar tryCatch = /*#__PURE__*/_curry2(function _tryCatch(tryer, catcher) {\n return _arity(tryer.length, function () {\n try {\n return tryer.apply(this, arguments);\n } catch (e) {\n return catcher.apply(this, _concat([e], arguments));\n }\n });\n});\nmodule.exports = tryCatch;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\n\nvar type = /*#__PURE__*/_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\nmodule.exports = type;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Takes a function `fn`, which takes a single array argument, and returns a\n * function which:\n *\n * - takes any number of positional arguments;\n * - passes these arguments to `fn` as an array; and\n * - returns the result.\n *\n * In other words, `R.unapply` derives a variadic function from a function which\n * takes an array. `R.unapply` is the inverse of [`R.apply`](#apply).\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Function\n * @sig ([*...] -> a) -> (*... -> a)\n * @param {Function} fn\n * @return {Function}\n * @see R.apply\n * @example\n *\n * R.unapply(JSON.stringify)(1, 2, 3); //=> '[1,2,3]'\n * @symb R.unapply(f)(a, b) = f([a, b])\n */\n\n\nvar unapply = /*#__PURE__*/_curry1(function unapply(fn) {\n return function () {\n return fn(Array.prototype.slice.call(arguments, 0));\n };\n});\nmodule.exports = unapply;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar nAry = /*#__PURE__*/require('./nAry');\n\n/**\n * Wraps a function of any arity (including nullary) in a function that accepts\n * exactly 1 parameter. Any extraneous parameters will not be passed to the\n * supplied function.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Function\n * @sig (* -> b) -> (a -> b)\n * @param {Function} fn The function to wrap.\n * @return {Function} A new function wrapping `fn`. The new function is guaranteed to be of\n * arity 1.\n * @see R.binary, R.nAry\n * @example\n *\n * const takesTwoArgs = function(a, b) {\n * return [a, b];\n * };\n * takesTwoArgs.length; //=> 2\n * takesTwoArgs(1, 2); //=> [1, 2]\n *\n * const takesOneArg = R.unary(takesTwoArgs);\n * takesOneArg.length; //=> 1\n * // Only 1 argument is passed to the wrapped function\n * takesOneArg(1, 2); //=> [1, undefined]\n * @symb R.unary(f)(a, b, c) = f(a)\n */\n\n\nvar unary = /*#__PURE__*/_curry1(function unary(fn) {\n return nAry(1, fn);\n});\nmodule.exports = unary;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Returns a function of arity `n` from a (manually) curried function.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Function\n * @sig Number -> (a -> b) -> (a -> c)\n * @param {Number} length The arity for the returned function.\n * @param {Function} fn The function to uncurry.\n * @return {Function} A new function.\n * @see R.curry\n * @example\n *\n * const addFour = a => b => c => d => a + b + c + d;\n *\n * const uncurriedAddFour = R.uncurryN(4, addFour);\n * uncurriedAddFour(1, 2, 3, 4); //=> 10\n */\n\n\nvar uncurryN = /*#__PURE__*/_curry2(function uncurryN(depth, fn) {\n return curryN(depth, function () {\n var currentDepth = 1;\n var value = fn;\n var idx = 0;\n var endIdx;\n while (currentDepth <= depth && typeof value === 'function') {\n endIdx = currentDepth === depth ? arguments.length : idx + value.length;\n value = value.apply(this, Array.prototype.slice.call(arguments, idx, endIdx));\n currentDepth += 1;\n idx = endIdx;\n }\n return value;\n });\n});\nmodule.exports = uncurryN;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Builds a list from a seed value. Accepts an iterator function, which returns\n * either false to stop iteration or an array of length 2 containing the value\n * to add to the resulting list and the seed to be used in the next call to the\n * iterator function.\n *\n * The iterator function receives one argument: *(seed)*.\n *\n * @func\n * @memberOf R\n * @since v0.10.0\n * @category List\n * @sig (a -> [b]) -> * -> [b]\n * @param {Function} fn The iterator function. receives one argument, `seed`, and returns\n * either false to quit iteration or an array of length two to proceed. The element\n * at index 0 of this array will be added to the resulting array, and the element\n * at index 1 will be passed to the next call to `fn`.\n * @param {*} seed The seed value.\n * @return {Array} The final list.\n * @example\n *\n * const f = n => n > 50 ? false : [-n, n + 10];\n * R.unfold(f, 10); //=> [-10, -20, -30, -40, -50]\n * @symb R.unfold(f, x) = [f(x)[0], f(f(x)[1])[0], f(f(f(x)[1])[1])[0], ...]\n */\n\n\nvar unfold = /*#__PURE__*/_curry2(function unfold(fn, seed) {\n var pair = fn(seed);\n var result = [];\n while (pair && pair.length) {\n result[result.length] = pair[0];\n pair = fn(pair[1]);\n }\n return result;\n});\nmodule.exports = unfold;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar compose = /*#__PURE__*/require('./compose');\n\nvar uniq = /*#__PURE__*/require('./uniq');\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig [*] -> [*] -> [*]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @example\n *\n * R.union([1, 2, 3], [2, 3, 4]); //=> [1, 2, 3, 4]\n */\n\n\nvar union = /*#__PURE__*/_curry2( /*#__PURE__*/compose(uniq, _concat));\nmodule.exports = union;","var _concat = /*#__PURE__*/require('./internal/_concat');\n\nvar _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar uniqWith = /*#__PURE__*/require('./uniqWith');\n\n/**\n * Combines two lists into a set (i.e. no duplicates) composed of the elements\n * of each list. Duplication is determined according to the value returned by\n * applying the supplied predicate to two list elements.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Relation\n * @sig ((a, a) -> Boolean) -> [*] -> [*] -> [*]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list1 The first list.\n * @param {Array} list2 The second list.\n * @return {Array} The first and second lists concatenated, with\n * duplicates removed.\n * @see R.union\n * @example\n *\n * const l1 = [{a: 1}, {a: 2}];\n * const l2 = [{a: 1}, {a: 4}];\n * R.unionWith(R.eqBy(R.prop('a')), l1, l2); //=> [{a: 1}, {a: 2}, {a: 4}]\n */\n\n\nvar unionWith = /*#__PURE__*/_curry3(function unionWith(pred, list1, list2) {\n return uniqWith(pred, _concat(list1, list2));\n});\nmodule.exports = unionWith;","var identity = /*#__PURE__*/require('./identity');\n\nvar uniqBy = /*#__PURE__*/require('./uniqBy');\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list. [`R.equals`](#equals) is used to determine equality.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniq([1, 1, 2, 1]); //=> [1, 2]\n * R.uniq([1, '1']); //=> [1, '1']\n * R.uniq([[42], [42]]); //=> [[42]]\n */\n\n\nvar uniq = /*#__PURE__*/uniqBy(identity);\nmodule.exports = uniq;","var _Set = /*#__PURE__*/require('./internal/_Set');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied function to\n * each list element. Prefers the first item if the supplied function produces\n * the same value on two items. [`R.equals`](#equals) is used for comparison.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category List\n * @sig (a -> b) -> [a] -> [a]\n * @param {Function} fn A function used to produce a value to use during comparisons.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * R.uniqBy(Math.abs, [-1, -5, 2, 10, 1, 2]); //=> [-1, -5, 2, 10]\n */\n\n\nvar uniqBy = /*#__PURE__*/_curry2(function uniqBy(fn, list) {\n var set = new _Set();\n var result = [];\n var idx = 0;\n var appliedItem, item;\n\n while (idx < list.length) {\n item = list[idx];\n appliedItem = fn(item);\n if (set.add(appliedItem)) {\n result.push(item);\n }\n idx += 1;\n }\n return result;\n});\nmodule.exports = uniqBy;","var _includesWith = /*#__PURE__*/require('./internal/_includesWith');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Returns a new list containing only one copy of each element in the original\n * list, based upon the value returned by applying the supplied predicate to\n * two list elements. Prefers the first item if two items compare equal based\n * on the predicate.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category List\n * @sig ((a, a) -> Boolean) -> [a] -> [a]\n * @param {Function} pred A predicate used to test whether two items are equal.\n * @param {Array} list The array to consider.\n * @return {Array} The list of unique items.\n * @example\n *\n * const strEq = R.eqBy(String);\n * R.uniqWith(strEq)([1, '1', 2, 1]); //=> [1, 2]\n * R.uniqWith(strEq)([{}, {}]); //=> [{}]\n * R.uniqWith(strEq)([1, '1', 1]); //=> [1]\n * R.uniqWith(strEq)(['1', 1, 1]); //=> ['1']\n */\n\n\nvar uniqWith = /*#__PURE__*/_curry2(function uniqWith(pred, list) {\n var idx = 0;\n var len = list.length;\n var result = [];\n var item;\n while (idx < len) {\n item = list[idx];\n if (!_includesWith(pred, item, result)) {\n result[result.length] = item;\n }\n idx += 1;\n }\n return result;\n});\nmodule.exports = uniqWith;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is not satisfied, the function will return the result of\n * calling the `whenFalseFn` function with the same argument. If the predicate\n * is satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenFalseFn A function to invoke when the `pred` evaluates\n * to a falsy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenFalseFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenFalseFn`.\n * @see R.ifElse, R.when, R.cond\n * @example\n *\n * let safeInc = R.unless(R.isNil, R.inc);\n * safeInc(null); //=> null\n * safeInc(1); //=> 2\n */\n\n\nvar unless = /*#__PURE__*/_curry3(function unless(pred, whenFalseFn, x) {\n return pred(x) ? x : whenFalseFn(x);\n});\nmodule.exports = unless;","var _identity = /*#__PURE__*/require('./internal/_identity');\n\nvar chain = /*#__PURE__*/require('./chain');\n\n/**\n * Shorthand for `R.chain(R.identity)`, which removes one level of nesting from\n * any [Chain](https://github.com/fantasyland/fantasy-land#chain).\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig Chain c => c (c a) -> c a\n * @param {*} list\n * @return {*}\n * @see R.flatten, R.chain\n * @example\n *\n * R.unnest([1, [2], [[3]]]); //=> [1, 2, [3]]\n * R.unnest([[1, 2], [3, 4], [5, 6]]); //=> [1, 2, 3, 4, 5, 6]\n */\n\n\nvar unnest = /*#__PURE__*/chain(_identity);\nmodule.exports = unnest;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Takes a predicate, a transformation function, and an initial value,\n * and returns a value of the same type as the initial value.\n * It does so by applying the transformation until the predicate is satisfied,\n * at which point it returns the satisfactory value.\n *\n * @func\n * @memberOf R\n * @since v0.20.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} fn The iterator function\n * @param {*} init Initial value\n * @return {*} Final value that satisfies predicate\n * @example\n *\n * R.until(R.gt(R.__, 100), R.multiply(2))(1) // => 128\n */\n\n\nvar until = /*#__PURE__*/_curry3(function until(pred, fn, init) {\n var val = init;\n while (!pred(val)) {\n val = fn(val);\n }\n return val;\n});\nmodule.exports = until;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\nvar adjust = /*#__PURE__*/require('./adjust');\n\nvar always = /*#__PURE__*/require('./always');\n\n/**\n * Returns a new copy of the array with the element at the provided index\n * replaced with the given value.\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category List\n * @sig Number -> a -> [a] -> [a]\n * @param {Number} idx The index to update.\n * @param {*} x The value to exist at the given index of the returned array.\n * @param {Array|Arguments} list The source array-like object to be updated.\n * @return {Array} A copy of `list` with the value at index `idx` replaced with `x`.\n * @see R.adjust\n * @example\n *\n * R.update(1, '_', ['a', 'b', 'c']); //=> ['a', '_', 'c']\n * R.update(-1, '_', ['a', 'b', 'c']); //=> ['a', 'b', '_']\n * @symb R.update(-1, a, [b, c]) = [b, a]\n * @symb R.update(0, a, [b, c]) = [a, c]\n * @symb R.update(1, a, [b, c]) = [b, a]\n */\n\n\nvar update = /*#__PURE__*/_curry3(function update(idx, x, list) {\n return adjust(idx, always(x), list);\n});\nmodule.exports = update;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar curryN = /*#__PURE__*/require('./curryN');\n\n/**\n * Accepts a function `fn` and a list of transformer functions and returns a\n * new curried function. When the new function is invoked, it calls the\n * function `fn` with parameters consisting of the result of calling each\n * supplied handler on successive arguments to the new function.\n *\n * If more arguments are passed to the returned function than transformer\n * functions, those arguments are passed directly to `fn` as additional\n * parameters. If you expect additional arguments that don't need to be\n * transformed, although you can ignore them, it's best to pass an identity\n * function so that the new function reports the correct arity.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig ((x1, x2, ...) -> z) -> [(a -> x1), (b -> x2), ...] -> (a -> b -> ... -> z)\n * @param {Function} fn The function to wrap.\n * @param {Array} transformers A list of transformer functions\n * @return {Function} The wrapped function.\n * @see R.converge\n * @example\n *\n * R.useWith(Math.pow, [R.identity, R.identity])(3, 4); //=> 81\n * R.useWith(Math.pow, [R.identity, R.identity])(3)(4); //=> 81\n * R.useWith(Math.pow, [R.dec, R.inc])(3, 4); //=> 32\n * R.useWith(Math.pow, [R.dec, R.inc])(3)(4); //=> 32\n * @symb R.useWith(f, [g, h])(a, b) = f(g(a), h(b))\n */\n\n\nvar useWith = /*#__PURE__*/_curry2(function useWith(fn, transformers) {\n return curryN(transformers.length, function () {\n var args = [];\n var idx = 0;\n while (idx < transformers.length) {\n args.push(transformers[idx].call(this, arguments[idx]));\n idx += 1;\n }\n return fn.apply(this, args.concat(Array.prototype.slice.call(arguments, transformers.length)));\n });\n});\nmodule.exports = useWith;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\nvar keys = /*#__PURE__*/require('./keys');\n\n/**\n * Returns a list of all the enumerable own properties of the supplied object.\n * Note that the order of the output array is not guaranteed across different\n * JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own properties.\n * @see R.valuesIn, R.keys\n * @example\n *\n * R.values({a: 1, b: 2, c: 3}); //=> [1, 2, 3]\n */\n\n\nvar values = /*#__PURE__*/_curry1(function values(obj) {\n var props = keys(obj);\n var len = props.length;\n var vals = [];\n var idx = 0;\n while (idx < len) {\n vals[idx] = obj[props[idx]];\n idx += 1;\n }\n return vals;\n});\nmodule.exports = values;","var _curry1 = /*#__PURE__*/require('./internal/_curry1');\n\n/**\n * Returns a list of all the properties, including prototype properties, of the\n * supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.2.0\n * @category Object\n * @sig {k: v} -> [v]\n * @param {Object} obj The object to extract values from\n * @return {Array} An array of the values of the object's own and prototype properties.\n * @see R.values, R.keysIn\n * @example\n *\n * const F = function() { this.x = 'X'; };\n * F.prototype.y = 'Y';\n * const f = new F();\n * R.valuesIn(f); //=> ['X', 'Y']\n */\n\n\nvar valuesIn = /*#__PURE__*/_curry1(function valuesIn(obj) {\n var prop;\n var vs = [];\n for (prop in obj) {\n vs[vs.length] = obj[prop];\n }\n return vs;\n});\nmodule.exports = valuesIn;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n// `Const` is a functor that effectively ignores the function given to `map`.\n\n\nvar Const = function (x) {\n return { value: x, 'fantasy-land/map': function () {\n return this;\n } };\n};\n\n/**\n * Returns a \"view\" of the given data structure, determined by the given lens.\n * The lens's focus determines which portion of the data structure is visible.\n *\n * @func\n * @memberOf R\n * @since v0.16.0\n * @category Object\n * @typedefn Lens s a = Functor f => (a -> f a) -> s -> f s\n * @sig Lens s a -> s -> a\n * @param {Lens} lens\n * @param {*} x\n * @return {*}\n * @see R.prop, R.lensIndex, R.lensProp\n * @example\n *\n * const xLens = R.lensProp('x');\n *\n * R.view(xLens, {x: 1, y: 2}); //=> 1\n * R.view(xLens, {x: 4, y: 2}); //=> 4\n */\nvar view = /*#__PURE__*/_curry2(function view(lens, x) {\n // Using `Const` effectively ignores the setter function of the `lens`,\n // leaving the value returned by the getter function unmodified.\n return lens(Const)(x).value;\n});\nmodule.exports = view;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Tests the final argument by passing it to the given predicate function. If\n * the predicate is satisfied, the function will return the result of calling\n * the `whenTrueFn` function with the same argument. If the predicate is not\n * satisfied, the argument is returned as is.\n *\n * @func\n * @memberOf R\n * @since v0.18.0\n * @category Logic\n * @sig (a -> Boolean) -> (a -> a) -> a -> a\n * @param {Function} pred A predicate function\n * @param {Function} whenTrueFn A function to invoke when the `condition`\n * evaluates to a truthy value.\n * @param {*} x An object to test with the `pred` function and\n * pass to `whenTrueFn` if necessary.\n * @return {*} Either `x` or the result of applying `x` to `whenTrueFn`.\n * @see R.ifElse, R.unless, R.cond\n * @example\n *\n * // truncate :: String -> String\n * const truncate = R.when(\n * R.propSatisfies(R.gt(R.__, 10), 'length'),\n * R.pipe(R.take(10), R.append('…'), R.join(''))\n * );\n * truncate('12345'); //=> '12345'\n * truncate('0123456789ABC'); //=> '0123456789…'\n */\n\n\nvar when = /*#__PURE__*/_curry3(function when(pred, whenTrueFn, x) {\n return pred(x) ? whenTrueFn(x) : x;\n});\nmodule.exports = when;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar _has = /*#__PURE__*/require('./internal/_has');\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec. Each of the spec's own properties must be a predicate function.\n * Each predicate is applied to the value of the corresponding property of the\n * test object. `where` returns true if all the predicates return true, false\n * otherwise.\n *\n * `where` is well suited to declaratively expressing constraints for other\n * functions such as [`filter`](#filter) and [`find`](#find).\n *\n * @func\n * @memberOf R\n * @since v0.1.1\n * @category Object\n * @sig {String: (* -> Boolean)} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propSatisfies, R.whereEq\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.where({\n * a: R.equals('foo'),\n * b: R.complement(R.equals('bar')),\n * x: R.gt(R.__, 10),\n * y: R.lt(R.__, 20)\n * });\n *\n * pred({a: 'foo', b: 'xxx', x: 11, y: 19}); //=> true\n * pred({a: 'xxx', b: 'xxx', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'bar', x: 11, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 10, y: 19}); //=> false\n * pred({a: 'foo', b: 'xxx', x: 11, y: 20}); //=> false\n */\n\n\nvar where = /*#__PURE__*/_curry2(function where(spec, testObj) {\n for (var prop in spec) {\n if (_has(prop, spec) && !spec[prop](testObj[prop])) {\n return false;\n }\n }\n return true;\n});\nmodule.exports = where;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar equals = /*#__PURE__*/require('./equals');\n\nvar map = /*#__PURE__*/require('./map');\n\nvar where = /*#__PURE__*/require('./where');\n\n/**\n * Takes a spec object and a test object; returns true if the test satisfies\n * the spec, false otherwise. An object satisfies the spec if, for each of the\n * spec's own properties, accessing that property of the object gives the same\n * value (in [`R.equals`](#equals) terms) as accessing that property of the\n * spec.\n *\n * `whereEq` is a specialization of [`where`](#where).\n *\n * @func\n * @memberOf R\n * @since v0.14.0\n * @category Object\n * @sig {String: *} -> {String: *} -> Boolean\n * @param {Object} spec\n * @param {Object} testObj\n * @return {Boolean}\n * @see R.propEq, R.where\n * @example\n *\n * // pred :: Object -> Boolean\n * const pred = R.whereEq({a: 1, b: 2});\n *\n * pred({a: 1}); //=> false\n * pred({a: 1, b: 2}); //=> true\n * pred({a: 1, b: 2, c: 3}); //=> true\n * pred({a: 1, b: 1}); //=> false\n */\n\n\nvar whereEq = /*#__PURE__*/_curry2(function whereEq(spec, testObj) {\n return where(map(equals, spec), testObj);\n});\nmodule.exports = whereEq;","var _includes = /*#__PURE__*/require('./internal/_includes');\n\nvar _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\nvar flip = /*#__PURE__*/require('./flip');\n\nvar reject = /*#__PURE__*/require('./reject');\n\n/**\n * Returns a new list without values in the first argument.\n * [`R.equals`](#equals) is used to determine equality.\n *\n * Acts as a transducer if a transformer is given in list position.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category List\n * @sig [a] -> [a] -> [a]\n * @param {Array} list1 The values to be removed from `list2`.\n * @param {Array} list2 The array to remove values from.\n * @return {Array} The new array without values in `list1`.\n * @see R.transduce, R.difference, R.remove\n * @example\n *\n * R.without([1, 2], [1, 2, 1, 3, 4]); //=> [3, 4]\n */\n\n\nvar without = /*#__PURE__*/_curry2(function (xs, list) {\n return reject(flip(_includes)(xs), list);\n});\nmodule.exports = without;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a new list out of the two supplied by creating each possible pair\n * from the lists.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} as The first list.\n * @param {Array} bs The second list.\n * @return {Array} The list made by combining each possible pair from\n * `as` and `bs` into pairs (`[a, b]`).\n * @example\n *\n * R.xprod([1, 2], ['a', 'b']); //=> [[1, 'a'], [1, 'b'], [2, 'a'], [2, 'b']]\n * @symb R.xprod([a, b], [c, d]) = [[a, c], [a, d], [b, c], [b, d]]\n */\n\n\nvar xprod = /*#__PURE__*/_curry2(function xprod(a, b) {\n // = xprodWith(prepend); (takes about 3 times as long...)\n var idx = 0;\n var ilen = a.length;\n var j;\n var jlen = b.length;\n var result = [];\n while (idx < ilen) {\n j = 0;\n while (j < jlen) {\n result[result.length] = [a[idx], b[j]];\n j += 1;\n }\n idx += 1;\n }\n return result;\n});\nmodule.exports = xprod;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a new list out of the two supplied by pairing up equally-positioned\n * items from both lists. The returned list is truncated to the length of the\n * shorter of the two input lists.\n * Note: `zip` is equivalent to `zipWith(function(a, b) { return [a, b] })`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [b] -> [[a,b]]\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by pairing up same-indexed elements of `list1` and `list2`.\n * @example\n *\n * R.zip([1, 2, 3], ['a', 'b', 'c']); //=> [[1, 'a'], [2, 'b'], [3, 'c']]\n * @symb R.zip([a, b, c], [d, e, f]) = [[a, d], [b, e], [c, f]]\n */\n\n\nvar zip = /*#__PURE__*/_curry2(function zip(a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = [a[idx], b[idx]];\n idx += 1;\n }\n return rv;\n});\nmodule.exports = zip;","var _curry2 = /*#__PURE__*/require('./internal/_curry2');\n\n/**\n * Creates a new object out of a list of keys and a list of values.\n * Key/value pairing is truncated to the length of the shorter of the two lists.\n * Note: `zipObj` is equivalent to `pipe(zip, fromPairs)`.\n *\n * @func\n * @memberOf R\n * @since v0.3.0\n * @category List\n * @sig [String] -> [*] -> {String: *}\n * @param {Array} keys The array that will be properties on the output object.\n * @param {Array} values The list of values on the output object.\n * @return {Object} The object made by pairing up same-indexed elements of `keys` and `values`.\n * @example\n *\n * R.zipObj(['a', 'b', 'c'], [1, 2, 3]); //=> {a: 1, b: 2, c: 3}\n */\n\n\nvar zipObj = /*#__PURE__*/_curry2(function zipObj(keys, values) {\n var idx = 0;\n var len = Math.min(keys.length, values.length);\n var out = {};\n while (idx < len) {\n out[keys[idx]] = values[idx];\n idx += 1;\n }\n return out;\n});\nmodule.exports = zipObj;","var _curry3 = /*#__PURE__*/require('./internal/_curry3');\n\n/**\n * Creates a new list out of the two supplied by applying the function to each\n * equally-positioned pair in the lists. The returned list is truncated to the\n * length of the shorter of the two input lists.\n *\n * @function\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> c) -> [a] -> [b] -> [c]\n * @param {Function} fn The function used to combine the two elements into one value.\n * @param {Array} list1 The first array to consider.\n * @param {Array} list2 The second array to consider.\n * @return {Array} The list made by combining same-indexed elements of `list1` and `list2`\n * using `fn`.\n * @example\n *\n * const f = (x, y) => {\n * // ...\n * };\n * R.zipWith(f, [1, 2, 3], ['a', 'b', 'c']);\n * //=> [f(1, 'a'), f(2, 'b'), f(3, 'c')]\n * @symb R.zipWith(fn, [a, b, c], [d, e, f]) = [fn(a, d), fn(b, e), fn(c, f)]\n */\n\n\nvar zipWith = /*#__PURE__*/_curry3(function zipWith(fn, a, b) {\n var rv = [];\n var idx = 0;\n var len = Math.min(a.length, b.length);\n while (idx < len) {\n rv[idx] = fn(a[idx], b[idx]);\n idx += 1;\n }\n return rv;\n});\nmodule.exports = zipWith;","/** @license React v17.0.2\n * react-dom.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (\"production\" !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\nvar _assign = require('object-assign');\nvar Scheduler = require('scheduler');\nvar tracing = require('scheduler/tracing');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\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\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nif (!React) {\n {\n throw Error( \"ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.\" );\n }\n}\n\nvar FunctionComponent = 0;\nvar ClassComponent = 1;\nvar IndeterminateComponent = 2; // Before we know whether it is function or class\n\nvar HostRoot = 3; // Root of a host tree. Could be nested inside another node.\n\nvar HostPortal = 4; // A subtree. Could be an entry point to a different renderer.\n\nvar HostComponent = 5;\nvar HostText = 6;\nvar Fragment = 7;\nvar Mode = 8;\nvar ContextConsumer = 9;\nvar ContextProvider = 10;\nvar ForwardRef = 11;\nvar Profiler = 12;\nvar SuspenseComponent = 13;\nvar MemoComponent = 14;\nvar SimpleMemoComponent = 15;\nvar LazyComponent = 16;\nvar IncompleteClassComponent = 17;\nvar DehydratedFragment = 18;\nvar SuspenseListComponent = 19;\nvar FundamentalComponent = 20;\nvar ScopeComponent = 21;\nvar Block = 22;\nvar OffscreenComponent = 23;\nvar LegacyHiddenComponent = 24;\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableProfilerTimer = true; // Record durations for commit and passive effects phases.\n\nvar enableFundamentalAPI = false; // Experimental Scope support.\nvar enableNewReconciler = false; // Errors that are thrown while unmounting (or after in the case of passive effects)\nvar warnAboutStringRefs = false;\n\nvar allNativeEvents = new Set();\n/**\n * Mapping from registration name to event name\n */\n\n\nvar registrationNameDependencies = {};\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\n\nvar possibleRegistrationNames = {} ; // Trust the developer to only use possibleRegistrationNames in true\n\nfunction registerTwoPhaseEvent(registrationName, dependencies) {\n registerDirectEvent(registrationName, dependencies);\n registerDirectEvent(registrationName + 'Capture', dependencies);\n}\nfunction registerDirectEvent(registrationName, dependencies) {\n {\n if (registrationNameDependencies[registrationName]) {\n error('EventRegistry: More than one plugin attempted to publish the same ' + 'registration name, `%s`.', registrationName);\n }\n }\n\n registrationNameDependencies[registrationName] = dependencies;\n\n {\n var lowerCasedName = registrationName.toLowerCase();\n possibleRegistrationNames[lowerCasedName] = registrationName;\n\n if (registrationName === 'onDoubleClick') {\n possibleRegistrationNames.ondblclick = registrationName;\n }\n }\n\n for (var i = 0; i < dependencies.length; i++) {\n allNativeEvents.add(dependencies[i]);\n }\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0; // A simple string attribute.\n// Attributes that aren't in the filter are presumed to have this type.\n\nvar STRING = 1; // A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\n\nvar BOOLEANISH_STRING = 2; // A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n\nvar BOOLEAN = 3; // An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\n\nvar OVERLOADED_BOOLEAN = 4; // An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\n\nvar NUMERIC = 5; // An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\n\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = \":A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD\";\n/* eslint-enable max-len */\n\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + \"\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040\";\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\nfunction isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {\n return true;\n }\n\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {\n return false;\n }\n\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n validatedAttributeNameCache[attributeName] = true;\n return true;\n }\n\n illegalAttributeNameCache[attributeName] = true;\n\n {\n error('Invalid attribute name: `%s`', attributeName);\n }\n\n return false;\n}\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null) {\n return propertyInfo.type === RESERVED;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n return true;\n }\n\n return false;\n}\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n return false;\n }\n\n switch (typeof value) {\n case 'function': // $FlowIssue symbol is perfectly valid here\n\n case 'symbol':\n // eslint-disable-line\n return true;\n\n case 'boolean':\n {\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n return !propertyInfo.acceptsBooleans;\n } else {\n var prefix = name.toLowerCase().slice(0, 5);\n return prefix !== 'data-' && prefix !== 'aria-';\n }\n }\n\n default:\n return false;\n }\n}\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n if (value === null || typeof value === 'undefined') {\n return true;\n }\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n return true;\n }\n\n if (isCustomComponentTag) {\n return false;\n }\n\n if (propertyInfo !== null) {\n\n switch (propertyInfo.type) {\n case BOOLEAN:\n return !value;\n\n case OVERLOADED_BOOLEAN:\n return value === false;\n\n case NUMERIC:\n return isNaN(value);\n\n case POSITIVE_NUMERIC:\n return isNaN(value) || value < 1;\n }\n }\n\n return false;\n}\nfunction getPropertyInfo(name) {\n return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace, sanitizeURL, removeEmptyString) {\n this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n this.attributeName = attributeName;\n this.attributeNamespace = attributeNamespace;\n this.mustUseProperty = mustUseProperty;\n this.propertyName = name;\n this.type = type;\n this.sanitizeURL = sanitizeURL;\n this.removeEmptyString = removeEmptyString;\n} // When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\n\n\nvar properties = {}; // These props are reserved by React. They shouldn't be written to the DOM.\n\nvar reservedProps = ['children', 'dangerouslySetInnerHTML', // TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'];\nreservedProps.forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n var name = _ref[0],\n attributeName = _ref[1];\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML boolean attributes.\n\n['allowFullScreen', 'async', // Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'disablePictureInPicture', 'disableRemotePlayback', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless', // Microdata\n'itemScope'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n\n['checked', // Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n\n['capture', 'download' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be positive numbers.\n\n['cols', 'rows', 'size', 'span' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n name, // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These are HTML attributes that must be numbers.\n\n['rowSpan', 'start'].forEach(function (name) {\n properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n name.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n});\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\n\nvar capitalize = function (token) {\n return token[1].toUpperCase();\n}; // This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML attribute filter.\n// Some of these attributes can be hard to find. This list was created by\n// scraping the MDN documentation.\n\n\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // String SVG attributes with the xlink namespace.\n\n['xlink:actuate', 'xlink:arcrole', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/1999/xlink', false, // sanitizeURL\n false);\n}); // String SVG attributes with the xml namespace.\n\n['xml:base', 'xml:lang', 'xml:space' // NOTE: if you add a camelCased prop to this list,\n// you'll need to set attributeName to name.toLowerCase()\n// instead in the assignment below.\n].forEach(function (attributeName) {\n var name = attributeName.replace(CAMELIZE, capitalize);\n properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n attributeName, 'http://www.w3.org/XML/1998/namespace', false, // sanitizeURL\n false);\n}); // These attribute exists both in HTML and SVG.\n// The attribute name is case-sensitive in SVG so we can't just use\n// the React name like we do for attributes that exist only in HTML.\n\n['tabIndex', 'crossOrigin'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n false, // sanitizeURL\n false);\n}); // These attributes accept URLs. These must not allow javascript: URLS.\n// These will also need to accept Trusted Types object in the future.\n\nvar xlinkHref = 'xlinkHref';\nproperties[xlinkHref] = new PropertyInfoRecord('xlinkHref', STRING, false, // mustUseProperty\n'xlink:href', 'http://www.w3.org/1999/xlink', true, // sanitizeURL\nfalse);\n['src', 'href', 'action', 'formAction'].forEach(function (attributeName) {\n properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty\n attributeName.toLowerCase(), // attributeName\n null, // attributeNamespace\n true, // sanitizeURL\n true);\n});\n\n// and any newline or tab are filtered out as if they're not part of the URL.\n// https://url.spec.whatwg.org/#url-parsing\n// Tab or newline are defined as \\r\\n\\t:\n// https://infra.spec.whatwg.org/#ascii-tab-or-newline\n// A C0 control is a code point in the range \\u0000 NULL to \\u001F\n// INFORMATION SEPARATOR ONE, inclusive:\n// https://infra.spec.whatwg.org/#c0-control-or-space\n\n/* eslint-disable max-len */\n\nvar isJavaScriptProtocol = /^[\\u0000-\\u001F ]*j[\\r\\n\\t]*a[\\r\\n\\t]*v[\\r\\n\\t]*a[\\r\\n\\t]*s[\\r\\n\\t]*c[\\r\\n\\t]*r[\\r\\n\\t]*i[\\r\\n\\t]*p[\\r\\n\\t]*t[\\r\\n\\t]*\\:/i;\nvar didWarn = false;\n\nfunction sanitizeURL(url) {\n {\n if (!didWarn && isJavaScriptProtocol.test(url)) {\n didWarn = true;\n\n error('A future version of React will block javascript: URLs as a security precaution. ' + 'Use event handlers instead if you can. If you need to generate unsafe HTML try ' + 'using dangerouslySetInnerHTML instead. React was passed %s.', JSON.stringify(url));\n }\n }\n}\n\n/**\n * Get the value for a property on a node. Only used in DEV for SSR validation.\n * The \"expected\" argument is used as a hint of what the expected value is.\n * Some properties have multiple equivalent values.\n */\nfunction getValueForProperty(node, name, expected, propertyInfo) {\n {\n if (propertyInfo.mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n return node[propertyName];\n } else {\n if ( propertyInfo.sanitizeURL) {\n // If we haven't fully disabled javascript: URLs, and if\n // the hydration is successful of a javascript: URL, we\n // still want to warn on the client.\n sanitizeURL('' + expected);\n }\n\n var attributeName = propertyInfo.attributeName;\n var stringValue = null;\n\n if (propertyInfo.type === OVERLOADED_BOOLEAN) {\n if (node.hasAttribute(attributeName)) {\n var value = node.getAttribute(attributeName);\n\n if (value === '') {\n return true;\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return value;\n }\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n } else if (node.hasAttribute(attributeName)) {\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n // We had an attribute but shouldn't have had one, so read it\n // for the error message.\n return node.getAttribute(attributeName);\n }\n\n if (propertyInfo.type === BOOLEAN) {\n // If this was a boolean, it doesn't matter what the value is\n // the fact that we have it is the same as the expected.\n return expected;\n } // Even if this property uses a namespace we use getAttribute\n // because we assume its namespaced name is the same as our config.\n // To use getAttributeNS we need the local name which we don't have\n // in our config atm.\n\n\n stringValue = node.getAttribute(attributeName);\n }\n\n if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {\n return stringValue === null ? expected : stringValue;\n } else if (stringValue === '' + expected) {\n return expected;\n } else {\n return stringValue;\n }\n }\n }\n}\n/**\n * Get the value for a attribute on a node. Only used in DEV for SSR validation.\n * The third argument is used as a hint of what the expected value is. Some\n * attributes have multiple equivalent values.\n */\n\nfunction getValueForAttribute(node, name, expected) {\n {\n if (!isAttributeNameSafe(name)) {\n return;\n } // If the object is an opaque reference ID, it's expected that\n // the next prop is different than the server value, so just return\n // expected\n\n\n if (isOpaqueHydratingObject(expected)) {\n return expected;\n }\n\n if (!node.hasAttribute(name)) {\n return expected === undefined ? undefined : null;\n }\n\n var value = node.getAttribute(name);\n\n if (value === '' + expected) {\n return expected;\n }\n\n return value;\n }\n}\n/**\n * Sets the value for a property on a node.\n *\n * @param {DOMElement} node\n * @param {string} name\n * @param {*} value\n */\n\nfunction setValueForProperty(node, name, value, isCustomComponentTag) {\n var propertyInfo = getPropertyInfo(name);\n\n if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {\n return;\n }\n\n if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {\n value = null;\n } // If the prop isn't in the special list, treat it as a simple attribute.\n\n\n if (isCustomComponentTag || propertyInfo === null) {\n if (isAttributeNameSafe(name)) {\n var _attributeName = name;\n\n if (value === null) {\n node.removeAttribute(_attributeName);\n } else {\n node.setAttribute(_attributeName, '' + value);\n }\n }\n\n return;\n }\n\n var mustUseProperty = propertyInfo.mustUseProperty;\n\n if (mustUseProperty) {\n var propertyName = propertyInfo.propertyName;\n\n if (value === null) {\n var type = propertyInfo.type;\n node[propertyName] = type === BOOLEAN ? false : '';\n } else {\n // Contrary to `setAttribute`, object properties are properly\n // `toString`ed by IE8/9.\n node[propertyName] = value;\n }\n\n return;\n } // The rest are treated as attributes with special cases.\n\n\n var attributeName = propertyInfo.attributeName,\n attributeNamespace = propertyInfo.attributeNamespace;\n\n if (value === null) {\n node.removeAttribute(attributeName);\n } else {\n var _type = propertyInfo.type;\n var attributeValue;\n\n if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {\n // If attribute type is boolean, we know for sure it won't be an execution sink\n // and we won't require Trusted Type here.\n attributeValue = '';\n } else {\n // `setAttribute` with objects becomes only `[object]` in IE8/9,\n // ('' + value) makes it output the correct toString()-value.\n {\n attributeValue = '' + value;\n }\n\n if (propertyInfo.sanitizeURL) {\n sanitizeURL(attributeValue.toString());\n }\n }\n\n if (attributeNamespace) {\n node.setAttributeNS(attributeNamespace, attributeName, attributeValue);\n } else {\n node.setAttribute(attributeName, attributeValue);\n }\n }\n}\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nvar REACT_FRAGMENT_TYPE = 0xeacb;\nvar REACT_STRICT_MODE_TYPE = 0xeacc;\nvar REACT_PROFILER_TYPE = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nvar REACT_SUSPENSE_TYPE = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n REACT_FRAGMENT_TYPE = symbolFor('react.fragment');\n REACT_STRICT_MODE_TYPE = symbolFor('react.strict_mode');\n REACT_PROFILER_TYPE = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n REACT_SUSPENSE_TYPE = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\n\nfunction describeClassComponentFrame(ctor, source, ownerFn) {\n {\n return describeNativeComponentFrame(ctor, true);\n }\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nfunction describeFiber(fiber) {\n var owner = fiber._debugOwner ? fiber._debugOwner.type : null ;\n var source = fiber._debugSource ;\n\n switch (fiber.tag) {\n case HostComponent:\n return describeBuiltInComponentFrame(fiber.type);\n\n case LazyComponent:\n return describeBuiltInComponentFrame('Lazy');\n\n case SuspenseComponent:\n return describeBuiltInComponentFrame('Suspense');\n\n case SuspenseListComponent:\n return describeBuiltInComponentFrame('SuspenseList');\n\n case FunctionComponent:\n case IndeterminateComponent:\n case SimpleMemoComponent:\n return describeFunctionComponentFrame(fiber.type);\n\n case ForwardRef:\n return describeFunctionComponentFrame(fiber.type.render);\n\n case Block:\n return describeFunctionComponentFrame(fiber.type._render);\n\n case ClassComponent:\n return describeClassComponentFrame(fiber.type);\n\n default:\n return '';\n }\n}\n\nfunction getStackByFiberInDevAndProd(workInProgress) {\n try {\n var info = '';\n var node = workInProgress;\n\n do {\n info += describeFiber(node);\n node = node.return;\n } while (node);\n\n return info;\n } catch (x) {\n return '\\nError generating stack: ' + x.message + '\\n' + x.stack;\n }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar current = null;\nvar isRendering = false;\nfunction getCurrentFiberOwnerNameInDevOrNull() {\n {\n if (current === null) {\n return null;\n }\n\n var owner = current._debugOwner;\n\n if (owner !== null && typeof owner !== 'undefined') {\n return getComponentName(owner.type);\n }\n }\n\n return null;\n}\n\nfunction getCurrentFiberStackInDev() {\n {\n if (current === null) {\n return '';\n } // Safe because if current fiber exists, we are reconciling,\n // and it is guaranteed to be the work-in-progress version.\n\n\n return getStackByFiberInDevAndProd(current);\n }\n}\n\nfunction resetCurrentFiber() {\n {\n ReactDebugCurrentFrame.getCurrentStack = null;\n current = null;\n isRendering = false;\n }\n}\nfunction setCurrentFiber(fiber) {\n {\n ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;\n current = fiber;\n isRendering = false;\n }\n}\nfunction setIsRendering(rendering) {\n {\n isRendering = rendering;\n }\n}\nfunction getIsRendering() {\n {\n return isRendering;\n }\n}\n\n// Flow does not allow string concatenation of most non-string types. To work\n// around this limitation, we use an opaque type that can only be obtained by\n// passing the value through getToStringValue first.\nfunction toString(value) {\n return '' + value;\n}\nfunction getToStringValue(value) {\n switch (typeof value) {\n case 'boolean':\n case 'number':\n case 'object':\n case 'string':\n case 'undefined':\n return value;\n\n default:\n // function, symbol are assigned as empty strings\n return '';\n }\n}\n\nvar hasReadOnlyValue = {\n button: true,\n checkbox: true,\n image: true,\n hidden: true,\n radio: true,\n reset: true,\n submit: true\n};\nfunction checkControlledValueProps(tagName, props) {\n {\n if (!(hasReadOnlyValue[props.type] || props.onChange || props.onInput || props.readOnly || props.disabled || props.value == null)) {\n error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n\n if (!(props.onChange || props.readOnly || props.disabled || props.checked == null)) {\n error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n }\n }\n}\n\nfunction isCheckable(elem) {\n var type = elem.type;\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');\n}\n\nfunction getTracker(node) {\n return node._valueTracker;\n}\n\nfunction detachTracker(node) {\n node._valueTracker = null;\n}\n\nfunction getValueFromNode(node) {\n var value = '';\n\n if (!node) {\n return value;\n }\n\n if (isCheckable(node)) {\n value = node.checked ? 'true' : 'false';\n } else {\n value = node.value;\n }\n\n return value;\n}\n\nfunction trackValueOnNode(node) {\n var valueField = isCheckable(node) ? 'checked' : 'value';\n var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);\n var currentValue = '' + node[valueField]; // if someone has already defined a value or Safari, then bail\n // and don't track value will cause over reporting of changes,\n // but it's better then a hard failure\n // (needed for certain tests that spyOn input values and Safari)\n\n if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {\n return;\n }\n\n var get = descriptor.get,\n set = descriptor.set;\n Object.defineProperty(node, valueField, {\n configurable: true,\n get: function () {\n return get.call(this);\n },\n set: function (value) {\n currentValue = '' + value;\n set.call(this, value);\n }\n }); // We could've passed this the first time\n // but it triggers a bug in IE11 and Edge 14/15.\n // Calling defineProperty() again should be equivalent.\n // https://github.com/facebook/react/issues/11768\n\n Object.defineProperty(node, valueField, {\n enumerable: descriptor.enumerable\n });\n var tracker = {\n getValue: function () {\n return currentValue;\n },\n setValue: function (value) {\n currentValue = '' + value;\n },\n stopTracking: function () {\n detachTracker(node);\n delete node[valueField];\n }\n };\n return tracker;\n}\n\nfunction track(node) {\n if (getTracker(node)) {\n return;\n } // TODO: Once it's just Fiber we can move this to node._wrapperState\n\n\n node._valueTracker = trackValueOnNode(node);\n}\nfunction updateValueIfChanged(node) {\n if (!node) {\n return false;\n }\n\n var tracker = getTracker(node); // if there is no tracker at this point it's unlikely\n // that trying again will succeed\n\n if (!tracker) {\n return true;\n }\n\n var lastValue = tracker.getValue();\n var nextValue = getValueFromNode(node);\n\n if (nextValue !== lastValue) {\n tracker.setValue(nextValue);\n return true;\n }\n\n return false;\n}\n\nfunction getActiveElement(doc) {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n\n if (typeof doc === 'undefined') {\n return null;\n }\n\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\nvar didWarnValueDefaultValue = false;\nvar didWarnCheckedDefaultChecked = false;\nvar didWarnControlledToUncontrolled = false;\nvar didWarnUncontrolledToControlled = false;\n\nfunction isControlled(props) {\n var usesChecked = props.type === 'checkbox' || props.type === 'radio';\n return usesChecked ? props.checked != null : props.value != null;\n}\n/**\n * Implements an <input> host component that allows setting these optional\n * props: `checked`, `value`, `defaultChecked`, and `defaultValue`.\n *\n * If `checked` or `value` are not supplied (or null/undefined), user actions\n * that affect the checked state or value will trigger updates to the element.\n *\n * If they are supplied (and not null/undefined), the rendered element will not\n * trigger updates to the element. Instead, the props must change in order for\n * the rendered element to be updated.\n *\n * The rendered element will be initialized as unchecked (or `defaultChecked`)\n * with an empty value (or `defaultValue`).\n *\n * See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html\n */\n\n\nfunction getHostProps(element, props) {\n var node = element;\n var checked = props.checked;\n\n var hostProps = _assign({}, props, {\n defaultChecked: undefined,\n defaultValue: undefined,\n value: undefined,\n checked: checked != null ? checked : node._wrapperState.initialChecked\n });\n\n return hostProps;\n}\nfunction initWrapperState(element, props) {\n {\n checkControlledValueProps('input', props);\n\n if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {\n error('%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnCheckedDefaultChecked = true;\n }\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {\n error('%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);\n\n didWarnValueDefaultValue = true;\n }\n }\n\n var node = element;\n var defaultValue = props.defaultValue == null ? '' : props.defaultValue;\n node._wrapperState = {\n initialChecked: props.checked != null ? props.checked : props.defaultChecked,\n initialValue: getToStringValue(props.value != null ? props.value : defaultValue),\n controlled: isControlled(props)\n };\n}\nfunction updateChecked(element, props) {\n var node = element;\n var checked = props.checked;\n\n if (checked != null) {\n setValueForProperty(node, 'checked', checked, false);\n }\n}\nfunction updateWrapper(element, props) {\n var node = element;\n\n {\n var controlled = isControlled(props);\n\n if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {\n error('A component is changing an uncontrolled input to be controlled. ' + 'This is likely caused by the value changing from undefined to ' + 'a defined value, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnUncontrolledToControlled = true;\n }\n\n if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {\n error('A component is changing a controlled input to be uncontrolled. ' + 'This is likely caused by the value changing from a defined to ' + 'undefined, which should not happen. ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components');\n\n didWarnControlledToUncontrolled = true;\n }\n }\n\n updateChecked(element, props);\n var value = getToStringValue(props.value);\n var type = props.type;\n\n if (value != null) {\n if (type === 'number') {\n if (value === 0 && node.value === '' || // We explicitly want to coerce to number here if possible.\n // eslint-disable-next-line\n node.value != value) {\n node.value = toString(value);\n }\n } else if (node.value !== toString(value)) {\n node.value = toString(value);\n }\n } else if (type === 'submit' || type === 'reset') {\n // Submit/reset inputs need the attribute removed completely to avoid\n // blank-text buttons.\n node.removeAttribute('value');\n return;\n }\n\n {\n // When syncing the value attribute, the value comes from a cascade of\n // properties:\n // 1. The value React property\n // 2. The defaultValue React property\n // 3. Otherwise there should be no change\n if (props.hasOwnProperty('value')) {\n setDefaultValue(node, props.type, value);\n } else if (props.hasOwnProperty('defaultValue')) {\n setDefaultValue(node, props.type, getToStringValue(props.defaultValue));\n }\n }\n\n {\n // When syncing the checked attribute, it only changes when it needs\n // to be removed, such as transitioning from a checkbox into a text input\n if (props.checked == null && props.defaultChecked != null) {\n node.defaultChecked = !!props.defaultChecked;\n }\n }\n}\nfunction postMountWrapper(element, props, isHydrating) {\n var node = element; // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {\n var type = props.type;\n var isButton = type === 'submit' || type === 'reset'; // Avoid setting value attribute on submit/reset inputs as it overrides the\n // default value provided by the browser. See: #12872\n\n if (isButton && (props.value === undefined || props.value === null)) {\n return;\n }\n\n var initialValue = toString(node._wrapperState.initialValue); // Do not assign value if it is already set. This prevents user text input\n // from being lost during SSR hydration.\n\n if (!isHydrating) {\n {\n // When syncing the value attribute, the value property should use\n // the wrapperState._initialValue property. This uses:\n //\n // 1. The value React property when present\n // 2. The defaultValue React property when present\n // 3. An empty string\n if (initialValue !== node.value) {\n node.value = initialValue;\n }\n }\n }\n\n {\n // Otherwise, the value attribute is synchronized to the property,\n // so we assign defaultValue to the same thing as the value property\n // assignment step above.\n node.defaultValue = initialValue;\n }\n } // Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug\n // this is needed to work around a chrome bug where setting defaultChecked\n // will sometimes influence the value of checked (even after detachment).\n // Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416\n // We need to temporarily unset name to avoid disrupting radio button groups.\n\n\n var name = node.name;\n\n if (name !== '') {\n node.name = '';\n }\n\n {\n // When syncing the checked attribute, both the checked property and\n // attribute are assigned at the same time using defaultChecked. This uses:\n //\n // 1. The checked React property when present\n // 2. The defaultChecked React property when present\n // 3. Otherwise, false\n node.defaultChecked = !node.defaultChecked;\n node.defaultChecked = !!node._wrapperState.initialChecked;\n }\n\n if (name !== '') {\n node.name = name;\n }\n}\nfunction restoreControlledState(element, props) {\n var node = element;\n updateWrapper(node, props);\n updateNamedCousins(node, props);\n}\n\nfunction updateNamedCousins(rootNode, props) {\n var name = props.name;\n\n if (props.type === 'radio' && name != null) {\n var queryRoot = rootNode;\n\n while (queryRoot.parentNode) {\n queryRoot = queryRoot.parentNode;\n } // If `rootNode.form` was non-null, then we could try `form.elements`,\n // but that sometimes behaves strangely in IE8. We could also try using\n // `form.getElementsByName`, but that will only return direct children\n // and won't include inputs that use the HTML5 `form=` attribute. Since\n // the input might not even be in a form. It might not even be in the\n // document. Let's just use the local `querySelectorAll` to ensure we don't\n // miss anything.\n\n\n var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type=\"radio\"]');\n\n for (var i = 0; i < group.length; i++) {\n var otherNode = group[i];\n\n if (otherNode === rootNode || otherNode.form !== rootNode.form) {\n continue;\n } // This will throw if radio buttons rendered by different copies of React\n // and the same name are rendered into the same form (same as #1939).\n // That's probably okay; we don't support it just as we don't support\n // mixing React radio buttons with non-React ones.\n\n\n var otherProps = getFiberCurrentPropsFromNode(otherNode);\n\n if (!otherProps) {\n {\n throw Error( \"ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.\" );\n }\n } // We need update the tracked value on the named cousin since the value\n // was changed but the input saw no event or value set\n\n\n updateValueIfChanged(otherNode); // If this is a controlled radio button group, forcing the input that\n // was previously checked to update will cause it to be come re-checked\n // as appropriate.\n\n updateWrapper(otherNode, otherProps);\n }\n }\n} // In Chrome, assigning defaultValue to certain input types triggers input validation.\n// For number inputs, the display value loses trailing decimal points. For email inputs,\n// Chrome raises \"The specified value <x> is not a valid email address\".\n//\n// Here we check to see if the defaultValue has actually changed, avoiding these problems\n// when the user is inputting text\n//\n// https://github.com/facebook/react/issues/7253\n\n\nfunction setDefaultValue(node, type, value) {\n if ( // Focused number inputs synchronize on blur. See ChangeEventPlugin.js\n type !== 'number' || getActiveElement(node.ownerDocument) !== node) {\n if (value == null) {\n node.defaultValue = toString(node._wrapperState.initialValue);\n } else if (node.defaultValue !== toString(value)) {\n node.defaultValue = toString(value);\n }\n }\n}\n\nvar didWarnSelectedSetOnOption = false;\nvar didWarnInvalidChild = false;\n\nfunction flattenChildren(children) {\n var content = ''; // Flatten children. We'll warn if they are invalid\n // during validateProps() which runs for hydration too.\n // Note that this would throw on non-element objects.\n // Elements are stringified (which is normally irrelevant\n // but matters for <fbt>).\n\n React.Children.forEach(children, function (child) {\n if (child == null) {\n return;\n }\n\n content += child; // Note: we don't warn about invalid children here.\n // Instead, this is done separately below so that\n // it happens during the hydration code path too.\n });\n return content;\n}\n/**\n * Implements an <option> host component that warns when `selected` is set.\n */\n\n\nfunction validateProps(element, props) {\n {\n // This mirrors the code path above, but runs for hydration too.\n // Warn about invalid children here so that client and hydration are consistent.\n // TODO: this seems like it could cause a DEV-only throw for hydration\n // if children contains a non-element object. We should try to avoid that.\n if (typeof props.children === 'object' && props.children !== null) {\n React.Children.forEach(props.children, function (child) {\n if (child == null) {\n return;\n }\n\n if (typeof child === 'string' || typeof child === 'number') {\n return;\n }\n\n if (typeof child.type !== 'string') {\n return;\n }\n\n if (!didWarnInvalidChild) {\n didWarnInvalidChild = true;\n\n error('Only strings and numbers are supported as <option> children.');\n }\n });\n } // TODO: Remove support for `selected` in <option>.\n\n\n if (props.selected != null && !didWarnSelectedSetOnOption) {\n error('Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');\n\n didWarnSelectedSetOnOption = true;\n }\n }\n}\nfunction postMountWrapper$1(element, props) {\n // value=\"\" should make a value attribute (#6219)\n if (props.value != null) {\n element.setAttribute('value', toString(getToStringValue(props.value)));\n }\n}\nfunction getHostProps$1(element, props) {\n var hostProps = _assign({\n children: undefined\n }, props);\n\n var content = flattenChildren(props.children);\n\n if (content) {\n hostProps.children = content;\n }\n\n return hostProps;\n}\n\nvar didWarnValueDefaultValue$1;\n\n{\n didWarnValueDefaultValue$1 = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n return '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n return '';\n}\n\nvar valuePropNames = ['value', 'defaultValue'];\n/**\n * Validation function for `value` and `defaultValue`.\n */\n\nfunction checkSelectPropTypes(props) {\n {\n checkControlledValueProps('select', props);\n\n for (var i = 0; i < valuePropNames.length; i++) {\n var propName = valuePropNames[i];\n\n if (props[propName] == null) {\n continue;\n }\n\n var isArray = Array.isArray(props[propName]);\n\n if (props.multiple && !isArray) {\n error('The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());\n } else if (!props.multiple && isArray) {\n error('The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());\n }\n }\n }\n}\n\nfunction updateOptions(node, multiple, propValue, setDefaultSelected) {\n var options = node.options;\n\n if (multiple) {\n var selectedValues = propValue;\n var selectedValue = {};\n\n for (var i = 0; i < selectedValues.length; i++) {\n // Prefix to avoid chaos with special keys.\n selectedValue['$' + selectedValues[i]] = true;\n }\n\n for (var _i = 0; _i < options.length; _i++) {\n var selected = selectedValue.hasOwnProperty('$' + options[_i].value);\n\n if (options[_i].selected !== selected) {\n options[_i].selected = selected;\n }\n\n if (selected && setDefaultSelected) {\n options[_i].defaultSelected = true;\n }\n }\n } else {\n // Do not set `select.value` as exact behavior isn't consistent across all\n // browsers for all cases.\n var _selectedValue = toString(getToStringValue(propValue));\n\n var defaultSelected = null;\n\n for (var _i2 = 0; _i2 < options.length; _i2++) {\n if (options[_i2].value === _selectedValue) {\n options[_i2].selected = true;\n\n if (setDefaultSelected) {\n options[_i2].defaultSelected = true;\n }\n\n return;\n }\n\n if (defaultSelected === null && !options[_i2].disabled) {\n defaultSelected = options[_i2];\n }\n }\n\n if (defaultSelected !== null) {\n defaultSelected.selected = true;\n }\n }\n}\n/**\n * Implements a <select> host component that allows optionally setting the\n * props `value` and `defaultValue`. If `multiple` is false, the prop must be a\n * stringable. If `multiple` is true, the prop must be an array of stringables.\n *\n * If `value` is not supplied (or null/undefined), user actions that change the\n * selected option will trigger updates to the rendered options.\n *\n * If it is supplied (and not null/undefined), the rendered options will not\n * update in response to user actions. Instead, the `value` prop must change in\n * order for the rendered options to update.\n *\n * If `defaultValue` is provided, any options with the supplied values will be\n * selected.\n */\n\n\nfunction getHostProps$2(element, props) {\n return _assign({}, props, {\n value: undefined\n });\n}\nfunction initWrapperState$1(element, props) {\n var node = element;\n\n {\n checkSelectPropTypes(props);\n }\n\n node._wrapperState = {\n wasMultiple: !!props.multiple\n };\n\n {\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {\n error('Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components');\n\n didWarnValueDefaultValue$1 = true;\n }\n }\n}\nfunction postMountWrapper$2(element, props) {\n var node = element;\n node.multiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n }\n}\nfunction postUpdateWrapper(element, props) {\n var node = element;\n var wasMultiple = node._wrapperState.wasMultiple;\n node._wrapperState.wasMultiple = !!props.multiple;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n } else if (wasMultiple !== !!props.multiple) {\n // For simplicity, reapply `defaultValue` if `multiple` is toggled.\n if (props.defaultValue != null) {\n updateOptions(node, !!props.multiple, props.defaultValue, true);\n } else {\n // Revert the select back to its default unselected state.\n updateOptions(node, !!props.multiple, props.multiple ? [] : '', false);\n }\n }\n}\nfunction restoreControlledState$1(element, props) {\n var node = element;\n var value = props.value;\n\n if (value != null) {\n updateOptions(node, !!props.multiple, value, false);\n }\n}\n\nvar didWarnValDefaultVal = false;\n\n/**\n * Implements a <textarea> host component that allows setting `value`, and\n * `defaultValue`. This differs from the traditional DOM API because value is\n * usually set as PCDATA children.\n *\n * If `value` is not supplied (or null/undefined), user actions that affect the\n * value will trigger updates to the element.\n *\n * If `value` is supplied (and not null/undefined), the rendered element will\n * not trigger updates to the element. Instead, the `value` prop must change in\n * order for the rendered element to be updated.\n *\n * The rendered element will be initialized with an empty value, the prop\n * `defaultValue` if specified, or the children content (deprecated).\n */\nfunction getHostProps$3(element, props) {\n var node = element;\n\n if (!(props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( \"`dangerouslySetInnerHTML` does not make sense on <textarea>.\" );\n }\n } // Always set children to the same thing. In IE9, the selection range will\n // get reset if `textContent` is mutated. We could add a check in setTextContent\n // to only set the value if/when the value differs from the node value (which would\n // completely solve this IE9 bug), but Sebastian+Sophie seemed to like this\n // solution. The value can be a boolean or object so that's why it's forced\n // to be a string.\n\n\n var hostProps = _assign({}, props, {\n value: undefined,\n defaultValue: undefined,\n children: toString(node._wrapperState.initialValue)\n });\n\n return hostProps;\n}\nfunction initWrapperState$2(element, props) {\n var node = element;\n\n {\n checkControlledValueProps('textarea', props);\n\n if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {\n error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');\n\n didWarnValDefaultVal = true;\n }\n }\n\n var initialValue = props.value; // Only bother fetching default value if we're going to use it\n\n if (initialValue == null) {\n var children = props.children,\n defaultValue = props.defaultValue;\n\n if (children != null) {\n {\n error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n }\n\n {\n if (!(defaultValue == null)) {\n {\n throw Error( \"If you supply `defaultValue` on a <textarea>, do not pass children.\" );\n }\n }\n\n if (Array.isArray(children)) {\n if (!(children.length <= 1)) {\n {\n throw Error( \"<textarea> can only have at most one child.\" );\n }\n }\n\n children = children[0];\n }\n\n defaultValue = children;\n }\n }\n\n if (defaultValue == null) {\n defaultValue = '';\n }\n\n initialValue = defaultValue;\n }\n\n node._wrapperState = {\n initialValue: getToStringValue(initialValue)\n };\n}\nfunction updateWrapper$1(element, props) {\n var node = element;\n var value = getToStringValue(props.value);\n var defaultValue = getToStringValue(props.defaultValue);\n\n if (value != null) {\n // Cast `value` to a string to ensure the value is set correctly. While\n // browsers typically do this as necessary, jsdom doesn't.\n var newValue = toString(value); // To avoid side effects (such as losing text selection), only set value if changed\n\n if (newValue !== node.value) {\n node.value = newValue;\n }\n\n if (props.defaultValue == null && node.defaultValue !== newValue) {\n node.defaultValue = newValue;\n }\n }\n\n if (defaultValue != null) {\n node.defaultValue = toString(defaultValue);\n }\n}\nfunction postMountWrapper$3(element, props) {\n var node = element; // This is in postMount because we need access to the DOM node, which is not\n // available until after the component has mounted.\n\n var textContent = node.textContent; // Only set node.value if textContent is equal to the expected\n // initial value. In IE10/IE11 there is a bug where the placeholder attribute\n // will populate textContent as well.\n // https://developer.microsoft.com/microsoft-edge/platform/issues/101525/\n\n if (textContent === node._wrapperState.initialValue) {\n if (textContent !== '' && textContent !== null) {\n node.value = textContent;\n }\n }\n}\nfunction restoreControlledState$2(element, props) {\n // DOM component is still mounted; update\n updateWrapper$1(element, props);\n}\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\nvar Namespaces = {\n html: HTML_NAMESPACE,\n mathml: MATH_NAMESPACE,\n svg: SVG_NAMESPACE\n}; // Assumes there is no parent namespace.\n\nfunction getIntrinsicNamespace(type) {\n switch (type) {\n case 'svg':\n return SVG_NAMESPACE;\n\n case 'math':\n return MATH_NAMESPACE;\n\n default:\n return HTML_NAMESPACE;\n }\n}\nfunction getChildNamespace(parentNamespace, type) {\n if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n // No (or default) parent namespace: potential entry point.\n return getIntrinsicNamespace(type);\n }\n\n if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n // We're leaving SVG.\n return HTML_NAMESPACE;\n } // By default, pass namespace below.\n\n\n return parentNamespace;\n}\n\n/* globals MSApp */\n\n/**\n * Create a function which has 'unsafe' privileges (required by windows8 apps)\n */\nvar createMicrosoftUnsafeLocalFunction = function (func) {\n if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {\n return function (arg0, arg1, arg2, arg3) {\n MSApp.execUnsafeLocalFunction(function () {\n return func(arg0, arg1, arg2, arg3);\n });\n };\n } else {\n return func;\n }\n};\n\nvar reusableSVGContainer;\n/**\n * Set the innerHTML property of a node\n *\n * @param {DOMElement} node\n * @param {string} html\n * @internal\n */\n\nvar setInnerHTML = createMicrosoftUnsafeLocalFunction(function (node, html) {\n if (node.namespaceURI === Namespaces.svg) {\n\n if (!('innerHTML' in node)) {\n // IE does not have innerHTML for SVG nodes, so instead we inject the\n // new markup in a temp node and then move the child nodes across into\n // the target node\n reusableSVGContainer = reusableSVGContainer || document.createElement('div');\n reusableSVGContainer.innerHTML = '<svg>' + html.valueOf().toString() + '</svg>';\n var svgNode = reusableSVGContainer.firstChild;\n\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n\n while (svgNode.firstChild) {\n node.appendChild(svgNode.firstChild);\n }\n\n return;\n }\n }\n\n node.innerHTML = html;\n});\n\n/**\n * HTML nodeType values that represent the type of the node\n */\nvar ELEMENT_NODE = 1;\nvar TEXT_NODE = 3;\nvar COMMENT_NODE = 8;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\n\n/**\n * Set the textContent property of a node. For text updates, it's faster\n * to set the `nodeValue` of the Text node directly instead of using\n * `.textContent` which will remove the existing node and create a new one.\n *\n * @param {DOMElement} node\n * @param {string} text\n * @internal\n */\n\nvar setTextContent = function (node, text) {\n if (text) {\n var firstChild = node.firstChild;\n\n if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE) {\n firstChild.nodeValue = text;\n return;\n }\n }\n\n node.textContent = text;\n};\n\n// List derived from Gecko source code:\n// https://github.com/mozilla/gecko-dev/blob/4e638efc71/layout/style/test/property_database.js\nvar shorthandToLonghand = {\n animation: ['animationDelay', 'animationDirection', 'animationDuration', 'animationFillMode', 'animationIterationCount', 'animationName', 'animationPlayState', 'animationTimingFunction'],\n background: ['backgroundAttachment', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundSize'],\n backgroundPosition: ['backgroundPositionX', 'backgroundPositionY'],\n border: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderBlockEnd: ['borderBlockEndColor', 'borderBlockEndStyle', 'borderBlockEndWidth'],\n borderBlockStart: ['borderBlockStartColor', 'borderBlockStartStyle', 'borderBlockStartWidth'],\n borderBottom: ['borderBottomColor', 'borderBottomStyle', 'borderBottomWidth'],\n borderColor: ['borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor'],\n borderImage: ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],\n borderInlineEnd: ['borderInlineEndColor', 'borderInlineEndStyle', 'borderInlineEndWidth'],\n borderInlineStart: ['borderInlineStartColor', 'borderInlineStartStyle', 'borderInlineStartWidth'],\n borderLeft: ['borderLeftColor', 'borderLeftStyle', 'borderLeftWidth'],\n borderRadius: ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],\n borderRight: ['borderRightColor', 'borderRightStyle', 'borderRightWidth'],\n borderStyle: ['borderBottomStyle', 'borderLeftStyle', 'borderRightStyle', 'borderTopStyle'],\n borderTop: ['borderTopColor', 'borderTopStyle', 'borderTopWidth'],\n borderWidth: ['borderBottomWidth', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth'],\n columnRule: ['columnRuleColor', 'columnRuleStyle', 'columnRuleWidth'],\n columns: ['columnCount', 'columnWidth'],\n flex: ['flexBasis', 'flexGrow', 'flexShrink'],\n flexFlow: ['flexDirection', 'flexWrap'],\n font: ['fontFamily', 'fontFeatureSettings', 'fontKerning', 'fontLanguageOverride', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition', 'fontWeight', 'lineHeight'],\n fontVariant: ['fontVariantAlternates', 'fontVariantCaps', 'fontVariantEastAsian', 'fontVariantLigatures', 'fontVariantNumeric', 'fontVariantPosition'],\n gap: ['columnGap', 'rowGap'],\n grid: ['gridAutoColumns', 'gridAutoFlow', 'gridAutoRows', 'gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n gridArea: ['gridColumnEnd', 'gridColumnStart', 'gridRowEnd', 'gridRowStart'],\n gridColumn: ['gridColumnEnd', 'gridColumnStart'],\n gridColumnGap: ['columnGap'],\n gridGap: ['columnGap', 'rowGap'],\n gridRow: ['gridRowEnd', 'gridRowStart'],\n gridRowGap: ['rowGap'],\n gridTemplate: ['gridTemplateAreas', 'gridTemplateColumns', 'gridTemplateRows'],\n listStyle: ['listStyleImage', 'listStylePosition', 'listStyleType'],\n margin: ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],\n marker: ['markerEnd', 'markerMid', 'markerStart'],\n mask: ['maskClip', 'maskComposite', 'maskImage', 'maskMode', 'maskOrigin', 'maskPositionX', 'maskPositionY', 'maskRepeat', 'maskSize'],\n maskPosition: ['maskPositionX', 'maskPositionY'],\n outline: ['outlineColor', 'outlineStyle', 'outlineWidth'],\n overflow: ['overflowX', 'overflowY'],\n padding: ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],\n placeContent: ['alignContent', 'justifyContent'],\n placeItems: ['alignItems', 'justifyItems'],\n placeSelf: ['alignSelf', 'justifySelf'],\n textDecoration: ['textDecorationColor', 'textDecorationLine', 'textDecorationStyle'],\n textEmphasis: ['textEmphasisColor', 'textEmphasisStyle'],\n transition: ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction'],\n wordWrap: ['overflowWrap']\n};\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridArea: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true\n};\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\n\nfunction prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\n\n\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O']; // Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\n\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n // Note that we've removed escapeTextForBrowser() calls here since the\n // whole string will be escaped when the attribute is injected into\n // the markup. If you provide unsafe user data here they can inject\n // arbitrary CSS which may be problematic (I couldn't repro this):\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n // This is not an XSS hole but instead a potential CSS injection issue\n // which has lead to a greater discussion about how we're going to\n // trust URLs moving forward. See #2115901\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n }\n\n return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n * > hyphenateStyleName('backgroundColor')\n * < \"background-color\"\n * > hyphenateStyleName('MozTransition')\n * < \"-moz-transition\"\n * > hyphenateStyleName('msTransition')\n * < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\n\nfunction hyphenateStyleName(name) {\n return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nvar warnValidStyle = function () {};\n\n{\n // 'msTransform' is correct, but the other prefixes should be capitalized\n var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n var msPattern$1 = /^-ms-/;\n var hyphenPattern = /-(.)/g; // style values shouldn't contain a semicolon\n\n var badStyleValueWithSemicolonPattern = /;\\s*$/;\n var warnedStyleNames = {};\n var warnedStyleValues = {};\n var warnedForNaNValue = false;\n var warnedForInfinityValue = false;\n\n var camelize = function (string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n };\n\n var warnHyphenatedStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported style property %s. Did you mean %s?', name, // As Andi Smith suggests\n // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n // is converted to lowercase `ms`.\n camelize(name.replace(msPattern$1, 'ms-')));\n };\n\n var warnBadVendoredStyleName = function (name) {\n if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n return;\n }\n\n warnedStyleNames[name] = true;\n\n error('Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n };\n\n var warnStyleValueWithSemicolon = function (name, value) {\n if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n return;\n }\n\n warnedStyleValues[value] = true;\n\n error(\"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n };\n\n var warnStyleValueIsNaN = function (name, value) {\n if (warnedForNaNValue) {\n return;\n }\n\n warnedForNaNValue = true;\n\n error('`NaN` is an invalid value for the `%s` css style property.', name);\n };\n\n var warnStyleValueIsInfinity = function (name, value) {\n if (warnedForInfinityValue) {\n return;\n }\n\n warnedForInfinityValue = true;\n\n error('`Infinity` is an invalid value for the `%s` css style property.', name);\n };\n\n warnValidStyle = function (name, value) {\n if (name.indexOf('-') > -1) {\n warnHyphenatedStyleName(name);\n } else if (badVendoredStyleNamePattern.test(name)) {\n warnBadVendoredStyleName(name);\n } else if (badStyleValueWithSemicolonPattern.test(value)) {\n warnStyleValueWithSemicolon(name, value);\n }\n\n if (typeof value === 'number') {\n if (isNaN(value)) {\n warnStyleValueIsNaN(name, value);\n } else if (!isFinite(value)) {\n warnStyleValueIsInfinity(name, value);\n }\n }\n };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\n/**\n * Operations for dealing with CSS properties.\n */\n\n/**\n * This creates a string that is expected to be equivalent to the style\n * attribute generated by server-side rendering. It by-passes warnings and\n * security checks so it's not safe to use this value for anything other than\n * comparison. It is only used in DEV for SSR validation.\n */\n\nfunction createDangerousStringForStyles(styles) {\n {\n var serialized = '';\n var delimiter = '';\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var styleValue = styles[styleName];\n\n if (styleValue != null) {\n var isCustomProperty = styleName.indexOf('--') === 0;\n serialized += delimiter + (isCustomProperty ? styleName : hyphenateStyleName(styleName)) + ':';\n serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n delimiter = ';';\n }\n }\n\n return serialized || null;\n }\n}\n/**\n * Sets the value for multiple styles on a node. If a value is specified as\n * '' (empty string), the corresponding style property will be unset.\n *\n * @param {DOMElement} node\n * @param {object} styles\n */\n\nfunction setValueForStyles(node, styles) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n\n {\n if (!isCustomProperty) {\n warnValidStyle$1(styleName, styles[styleName]);\n }\n }\n\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n style.setProperty(styleName, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nfunction isValueEmpty(value) {\n return value == null || typeof value === 'boolean' || value === '';\n}\n/**\n * Given {color: 'red', overflow: 'hidden'} returns {\n * color: 'color',\n * overflowX: 'overflow',\n * overflowY: 'overflow',\n * }. This can be read as \"the overflowY property was set by the overflow\n * shorthand\". That is, the values are the property that each was derived from.\n */\n\n\nfunction expandShorthandMap(styles) {\n var expanded = {};\n\n for (var key in styles) {\n var longhands = shorthandToLonghand[key] || [key];\n\n for (var i = 0; i < longhands.length; i++) {\n expanded[longhands[i]] = key;\n }\n }\n\n return expanded;\n}\n/**\n * When mixing shorthand and longhand property names, we warn during updates if\n * we expect an incorrect result to occur. In particular, we warn for:\n *\n * Updating a shorthand property (longhand gets overwritten):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'baz', fontVariant: 'bar'}\n * becomes .style.font = 'baz'\n * Removing a shorthand property (longhand gets lost too):\n * {font: 'foo', fontVariant: 'bar'} -> {fontVariant: 'bar'}\n * becomes .style.font = ''\n * Removing a longhand property (should revert to shorthand; doesn't):\n * {font: 'foo', fontVariant: 'bar'} -> {font: 'foo'}\n * becomes .style.fontVariant = ''\n */\n\n\nfunction validateShorthandPropertyCollisionInDev(styleUpdates, nextStyles) {\n {\n if (!nextStyles) {\n return;\n }\n\n var expandedUpdates = expandShorthandMap(styleUpdates);\n var expandedStyles = expandShorthandMap(nextStyles);\n var warnedAbout = {};\n\n for (var key in expandedUpdates) {\n var originalKey = expandedUpdates[key];\n var correctOriginalKey = expandedStyles[key];\n\n if (correctOriginalKey && originalKey !== correctOriginalKey) {\n var warningKey = originalKey + ',' + correctOriginalKey;\n\n if (warnedAbout[warningKey]) {\n continue;\n }\n\n warnedAbout[warningKey] = true;\n\n error('%s a style property during rerender (%s) when a ' + 'conflicting property is set (%s) can lead to styling bugs. To ' + \"avoid this, don't mix shorthand and non-shorthand properties \" + 'for the same value; instead, replace the shorthand with ' + 'separate values.', isValueEmpty(styleUpdates[originalKey]) ? 'Removing' : 'Updating', originalKey, correctOriginalKey);\n }\n }\n }\n}\n\n// For HTML, certain tags should omit their close tag. We keep a list for\n// those special-case tags.\nvar omittedCloseTags = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true // NOTE: menuitem's close tag should be omitted, but that causes problems.\n\n};\n\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n menuitem: true\n}, omittedCloseTags);\n\nvar HTML = '__html';\n\nfunction assertValidProps(tag, props) {\n if (!props) {\n return;\n } // Note the use of `==` which checks for null or undefined.\n\n\n if (voidElementTags[tag]) {\n if (!(props.children == null && props.dangerouslySetInnerHTML == null)) {\n {\n throw Error( tag + \" is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.\" );\n }\n }\n }\n\n if (props.dangerouslySetInnerHTML != null) {\n if (!(props.children == null)) {\n {\n throw Error( \"Can only set one of `children` or `props.dangerouslySetInnerHTML`.\" );\n }\n }\n\n if (!(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML)) {\n {\n throw Error( \"`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://reactjs.org/link/dangerously-set-inner-html for more information.\" );\n }\n }\n }\n\n {\n if (!props.suppressContentEditableWarning && props.contentEditable && props.children != null) {\n error('A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');\n }\n }\n\n if (!(props.style == null || typeof props.style === 'object')) {\n {\n throw Error( \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\" );\n }\n }\n}\n\nfunction isCustomComponent(tagName, props) {\n if (tagName.indexOf('-') === -1) {\n return typeof props.is === 'string';\n }\n\n switch (tagName) {\n // These are reserved SVG and MathML elements.\n // We don't mind this list too much because we expect it to never grow.\n // The alternative is to track the namespace in a few places which is convoluted.\n // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n case 'annotation-xml':\n case 'color-profile':\n case 'font-face':\n case 'font-face-src':\n case 'font-face-uri':\n case 'font-face-format':\n case 'font-face-name':\n case 'missing-glyph':\n return false;\n\n default:\n return true;\n }\n}\n\n// When adding attributes to the HTML or SVG allowed attribute list, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n // HTML\n accept: 'accept',\n acceptcharset: 'acceptCharset',\n 'accept-charset': 'acceptCharset',\n accesskey: 'accessKey',\n action: 'action',\n allowfullscreen: 'allowFullScreen',\n alt: 'alt',\n as: 'as',\n async: 'async',\n autocapitalize: 'autoCapitalize',\n autocomplete: 'autoComplete',\n autocorrect: 'autoCorrect',\n autofocus: 'autoFocus',\n autoplay: 'autoPlay',\n autosave: 'autoSave',\n capture: 'capture',\n cellpadding: 'cellPadding',\n cellspacing: 'cellSpacing',\n challenge: 'challenge',\n charset: 'charSet',\n checked: 'checked',\n children: 'children',\n cite: 'cite',\n class: 'className',\n classid: 'classID',\n classname: 'className',\n cols: 'cols',\n colspan: 'colSpan',\n content: 'content',\n contenteditable: 'contentEditable',\n contextmenu: 'contextMenu',\n controls: 'controls',\n controlslist: 'controlsList',\n coords: 'coords',\n crossorigin: 'crossOrigin',\n dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n data: 'data',\n datetime: 'dateTime',\n default: 'default',\n defaultchecked: 'defaultChecked',\n defaultvalue: 'defaultValue',\n defer: 'defer',\n dir: 'dir',\n disabled: 'disabled',\n disablepictureinpicture: 'disablePictureInPicture',\n disableremoteplayback: 'disableRemotePlayback',\n download: 'download',\n draggable: 'draggable',\n enctype: 'encType',\n enterkeyhint: 'enterKeyHint',\n for: 'htmlFor',\n form: 'form',\n formmethod: 'formMethod',\n formaction: 'formAction',\n formenctype: 'formEncType',\n formnovalidate: 'formNoValidate',\n formtarget: 'formTarget',\n frameborder: 'frameBorder',\n headers: 'headers',\n height: 'height',\n hidden: 'hidden',\n high: 'high',\n href: 'href',\n hreflang: 'hrefLang',\n htmlfor: 'htmlFor',\n httpequiv: 'httpEquiv',\n 'http-equiv': 'httpEquiv',\n icon: 'icon',\n id: 'id',\n innerhtml: 'innerHTML',\n inputmode: 'inputMode',\n integrity: 'integrity',\n is: 'is',\n itemid: 'itemID',\n itemprop: 'itemProp',\n itemref: 'itemRef',\n itemscope: 'itemScope',\n itemtype: 'itemType',\n keyparams: 'keyParams',\n keytype: 'keyType',\n kind: 'kind',\n label: 'label',\n lang: 'lang',\n list: 'list',\n loop: 'loop',\n low: 'low',\n manifest: 'manifest',\n marginwidth: 'marginWidth',\n marginheight: 'marginHeight',\n max: 'max',\n maxlength: 'maxLength',\n media: 'media',\n mediagroup: 'mediaGroup',\n method: 'method',\n min: 'min',\n minlength: 'minLength',\n multiple: 'multiple',\n muted: 'muted',\n name: 'name',\n nomodule: 'noModule',\n nonce: 'nonce',\n novalidate: 'noValidate',\n open: 'open',\n optimum: 'optimum',\n pattern: 'pattern',\n placeholder: 'placeholder',\n playsinline: 'playsInline',\n poster: 'poster',\n preload: 'preload',\n profile: 'profile',\n radiogroup: 'radioGroup',\n readonly: 'readOnly',\n referrerpolicy: 'referrerPolicy',\n rel: 'rel',\n required: 'required',\n reversed: 'reversed',\n role: 'role',\n rows: 'rows',\n rowspan: 'rowSpan',\n sandbox: 'sandbox',\n scope: 'scope',\n scoped: 'scoped',\n scrolling: 'scrolling',\n seamless: 'seamless',\n selected: 'selected',\n shape: 'shape',\n size: 'size',\n sizes: 'sizes',\n span: 'span',\n spellcheck: 'spellCheck',\n src: 'src',\n srcdoc: 'srcDoc',\n srclang: 'srcLang',\n srcset: 'srcSet',\n start: 'start',\n step: 'step',\n style: 'style',\n summary: 'summary',\n tabindex: 'tabIndex',\n target: 'target',\n title: 'title',\n type: 'type',\n usemap: 'useMap',\n value: 'value',\n width: 'width',\n wmode: 'wmode',\n wrap: 'wrap',\n // SVG\n about: 'about',\n accentheight: 'accentHeight',\n 'accent-height': 'accentHeight',\n accumulate: 'accumulate',\n additive: 'additive',\n alignmentbaseline: 'alignmentBaseline',\n 'alignment-baseline': 'alignmentBaseline',\n allowreorder: 'allowReorder',\n alphabetic: 'alphabetic',\n amplitude: 'amplitude',\n arabicform: 'arabicForm',\n 'arabic-form': 'arabicForm',\n ascent: 'ascent',\n attributename: 'attributeName',\n attributetype: 'attributeType',\n autoreverse: 'autoReverse',\n azimuth: 'azimuth',\n basefrequency: 'baseFrequency',\n baselineshift: 'baselineShift',\n 'baseline-shift': 'baselineShift',\n baseprofile: 'baseProfile',\n bbox: 'bbox',\n begin: 'begin',\n bias: 'bias',\n by: 'by',\n calcmode: 'calcMode',\n capheight: 'capHeight',\n 'cap-height': 'capHeight',\n clip: 'clip',\n clippath: 'clipPath',\n 'clip-path': 'clipPath',\n clippathunits: 'clipPathUnits',\n cliprule: 'clipRule',\n 'clip-rule': 'clipRule',\n color: 'color',\n colorinterpolation: 'colorInterpolation',\n 'color-interpolation': 'colorInterpolation',\n colorinterpolationfilters: 'colorInterpolationFilters',\n 'color-interpolation-filters': 'colorInterpolationFilters',\n colorprofile: 'colorProfile',\n 'color-profile': 'colorProfile',\n colorrendering: 'colorRendering',\n 'color-rendering': 'colorRendering',\n contentscripttype: 'contentScriptType',\n contentstyletype: 'contentStyleType',\n cursor: 'cursor',\n cx: 'cx',\n cy: 'cy',\n d: 'd',\n datatype: 'datatype',\n decelerate: 'decelerate',\n descent: 'descent',\n diffuseconstant: 'diffuseConstant',\n direction: 'direction',\n display: 'display',\n divisor: 'divisor',\n dominantbaseline: 'dominantBaseline',\n 'dominant-baseline': 'dominantBaseline',\n dur: 'dur',\n dx: 'dx',\n dy: 'dy',\n edgemode: 'edgeMode',\n elevation: 'elevation',\n enablebackground: 'enableBackground',\n 'enable-background': 'enableBackground',\n end: 'end',\n exponent: 'exponent',\n externalresourcesrequired: 'externalResourcesRequired',\n fill: 'fill',\n fillopacity: 'fillOpacity',\n 'fill-opacity': 'fillOpacity',\n fillrule: 'fillRule',\n 'fill-rule': 'fillRule',\n filter: 'filter',\n filterres: 'filterRes',\n filterunits: 'filterUnits',\n floodopacity: 'floodOpacity',\n 'flood-opacity': 'floodOpacity',\n floodcolor: 'floodColor',\n 'flood-color': 'floodColor',\n focusable: 'focusable',\n fontfamily: 'fontFamily',\n 'font-family': 'fontFamily',\n fontsize: 'fontSize',\n 'font-size': 'fontSize',\n fontsizeadjust: 'fontSizeAdjust',\n 'font-size-adjust': 'fontSizeAdjust',\n fontstretch: 'fontStretch',\n 'font-stretch': 'fontStretch',\n fontstyle: 'fontStyle',\n 'font-style': 'fontStyle',\n fontvariant: 'fontVariant',\n 'font-variant': 'fontVariant',\n fontweight: 'fontWeight',\n 'font-weight': 'fontWeight',\n format: 'format',\n from: 'from',\n fx: 'fx',\n fy: 'fy',\n g1: 'g1',\n g2: 'g2',\n glyphname: 'glyphName',\n 'glyph-name': 'glyphName',\n glyphorientationhorizontal: 'glyphOrientationHorizontal',\n 'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n glyphorientationvertical: 'glyphOrientationVertical',\n 'glyph-orientation-vertical': 'glyphOrientationVertical',\n glyphref: 'glyphRef',\n gradienttransform: 'gradientTransform',\n gradientunits: 'gradientUnits',\n hanging: 'hanging',\n horizadvx: 'horizAdvX',\n 'horiz-adv-x': 'horizAdvX',\n horizoriginx: 'horizOriginX',\n 'horiz-origin-x': 'horizOriginX',\n ideographic: 'ideographic',\n imagerendering: 'imageRendering',\n 'image-rendering': 'imageRendering',\n in2: 'in2',\n in: 'in',\n inlist: 'inlist',\n intercept: 'intercept',\n k1: 'k1',\n k2: 'k2',\n k3: 'k3',\n k4: 'k4',\n k: 'k',\n kernelmatrix: 'kernelMatrix',\n kernelunitlength: 'kernelUnitLength',\n kerning: 'kerning',\n keypoints: 'keyPoints',\n keysplines: 'keySplines',\n keytimes: 'keyTimes',\n lengthadjust: 'lengthAdjust',\n letterspacing: 'letterSpacing',\n 'letter-spacing': 'letterSpacing',\n lightingcolor: 'lightingColor',\n 'lighting-color': 'lightingColor',\n limitingconeangle: 'limitingConeAngle',\n local: 'local',\n markerend: 'markerEnd',\n 'marker-end': 'markerEnd',\n markerheight: 'markerHeight',\n markermid: 'markerMid',\n 'marker-mid': 'markerMid',\n markerstart: 'markerStart',\n 'marker-start': 'markerStart',\n markerunits: 'markerUnits',\n markerwidth: 'markerWidth',\n mask: 'mask',\n maskcontentunits: 'maskContentUnits',\n maskunits: 'maskUnits',\n mathematical: 'mathematical',\n mode: 'mode',\n numoctaves: 'numOctaves',\n offset: 'offset',\n opacity: 'opacity',\n operator: 'operator',\n order: 'order',\n orient: 'orient',\n orientation: 'orientation',\n origin: 'origin',\n overflow: 'overflow',\n overlineposition: 'overlinePosition',\n 'overline-position': 'overlinePosition',\n overlinethickness: 'overlineThickness',\n 'overline-thickness': 'overlineThickness',\n paintorder: 'paintOrder',\n 'paint-order': 'paintOrder',\n panose1: 'panose1',\n 'panose-1': 'panose1',\n pathlength: 'pathLength',\n patterncontentunits: 'patternContentUnits',\n patterntransform: 'patternTransform',\n patternunits: 'patternUnits',\n pointerevents: 'pointerEvents',\n 'pointer-events': 'pointerEvents',\n points: 'points',\n pointsatx: 'pointsAtX',\n pointsaty: 'pointsAtY',\n pointsatz: 'pointsAtZ',\n prefix: 'prefix',\n preservealpha: 'preserveAlpha',\n preserveaspectratio: 'preserveAspectRatio',\n primitiveunits: 'primitiveUnits',\n property: 'property',\n r: 'r',\n radius: 'radius',\n refx: 'refX',\n refy: 'refY',\n renderingintent: 'renderingIntent',\n 'rendering-intent': 'renderingIntent',\n repeatcount: 'repeatCount',\n repeatdur: 'repeatDur',\n requiredextensions: 'requiredExtensions',\n requiredfeatures: 'requiredFeatures',\n resource: 'resource',\n restart: 'restart',\n result: 'result',\n results: 'results',\n rotate: 'rotate',\n rx: 'rx',\n ry: 'ry',\n scale: 'scale',\n security: 'security',\n seed: 'seed',\n shaperendering: 'shapeRendering',\n 'shape-rendering': 'shapeRendering',\n slope: 'slope',\n spacing: 'spacing',\n specularconstant: 'specularConstant',\n specularexponent: 'specularExponent',\n speed: 'speed',\n spreadmethod: 'spreadMethod',\n startoffset: 'startOffset',\n stddeviation: 'stdDeviation',\n stemh: 'stemh',\n stemv: 'stemv',\n stitchtiles: 'stitchTiles',\n stopcolor: 'stopColor',\n 'stop-color': 'stopColor',\n stopopacity: 'stopOpacity',\n 'stop-opacity': 'stopOpacity',\n strikethroughposition: 'strikethroughPosition',\n 'strikethrough-position': 'strikethroughPosition',\n strikethroughthickness: 'strikethroughThickness',\n 'strikethrough-thickness': 'strikethroughThickness',\n string: 'string',\n stroke: 'stroke',\n strokedasharray: 'strokeDasharray',\n 'stroke-dasharray': 'strokeDasharray',\n strokedashoffset: 'strokeDashoffset',\n 'stroke-dashoffset': 'strokeDashoffset',\n strokelinecap: 'strokeLinecap',\n 'stroke-linecap': 'strokeLinecap',\n strokelinejoin: 'strokeLinejoin',\n 'stroke-linejoin': 'strokeLinejoin',\n strokemiterlimit: 'strokeMiterlimit',\n 'stroke-miterlimit': 'strokeMiterlimit',\n strokewidth: 'strokeWidth',\n 'stroke-width': 'strokeWidth',\n strokeopacity: 'strokeOpacity',\n 'stroke-opacity': 'strokeOpacity',\n suppresscontenteditablewarning: 'suppressContentEditableWarning',\n suppresshydrationwarning: 'suppressHydrationWarning',\n surfacescale: 'surfaceScale',\n systemlanguage: 'systemLanguage',\n tablevalues: 'tableValues',\n targetx: 'targetX',\n targety: 'targetY',\n textanchor: 'textAnchor',\n 'text-anchor': 'textAnchor',\n textdecoration: 'textDecoration',\n 'text-decoration': 'textDecoration',\n textlength: 'textLength',\n textrendering: 'textRendering',\n 'text-rendering': 'textRendering',\n to: 'to',\n transform: 'transform',\n typeof: 'typeof',\n u1: 'u1',\n u2: 'u2',\n underlineposition: 'underlinePosition',\n 'underline-position': 'underlinePosition',\n underlinethickness: 'underlineThickness',\n 'underline-thickness': 'underlineThickness',\n unicode: 'unicode',\n unicodebidi: 'unicodeBidi',\n 'unicode-bidi': 'unicodeBidi',\n unicoderange: 'unicodeRange',\n 'unicode-range': 'unicodeRange',\n unitsperem: 'unitsPerEm',\n 'units-per-em': 'unitsPerEm',\n unselectable: 'unselectable',\n valphabetic: 'vAlphabetic',\n 'v-alphabetic': 'vAlphabetic',\n values: 'values',\n vectoreffect: 'vectorEffect',\n 'vector-effect': 'vectorEffect',\n version: 'version',\n vertadvy: 'vertAdvY',\n 'vert-adv-y': 'vertAdvY',\n vertoriginx: 'vertOriginX',\n 'vert-origin-x': 'vertOriginX',\n vertoriginy: 'vertOriginY',\n 'vert-origin-y': 'vertOriginY',\n vhanging: 'vHanging',\n 'v-hanging': 'vHanging',\n videographic: 'vIdeographic',\n 'v-ideographic': 'vIdeographic',\n viewbox: 'viewBox',\n viewtarget: 'viewTarget',\n visibility: 'visibility',\n vmathematical: 'vMathematical',\n 'v-mathematical': 'vMathematical',\n vocab: 'vocab',\n widths: 'widths',\n wordspacing: 'wordSpacing',\n 'word-spacing': 'wordSpacing',\n writingmode: 'writingMode',\n 'writing-mode': 'writingMode',\n x1: 'x1',\n x2: 'x2',\n x: 'x',\n xchannelselector: 'xChannelSelector',\n xheight: 'xHeight',\n 'x-height': 'xHeight',\n xlinkactuate: 'xlinkActuate',\n 'xlink:actuate': 'xlinkActuate',\n xlinkarcrole: 'xlinkArcrole',\n 'xlink:arcrole': 'xlinkArcrole',\n xlinkhref: 'xlinkHref',\n 'xlink:href': 'xlinkHref',\n xlinkrole: 'xlinkRole',\n 'xlink:role': 'xlinkRole',\n xlinkshow: 'xlinkShow',\n 'xlink:show': 'xlinkShow',\n xlinktitle: 'xlinkTitle',\n 'xlink:title': 'xlinkTitle',\n xlinktype: 'xlinkType',\n 'xlink:type': 'xlinkType',\n xmlbase: 'xmlBase',\n 'xml:base': 'xmlBase',\n xmllang: 'xmlLang',\n 'xml:lang': 'xmlLang',\n xmlns: 'xmlns',\n 'xml:space': 'xmlSpace',\n xmlnsxlink: 'xmlnsXlink',\n 'xmlns:xlink': 'xmlnsXlink',\n xmlspace: 'xmlSpace',\n y1: 'y1',\n y2: 'y2',\n y: 'y',\n ychannelselector: 'yChannelSelector',\n z: 'z',\n zoomandpan: 'zoomAndPan'\n};\n\nvar ariaProperties = {\n 'aria-current': 0,\n // state\n 'aria-details': 0,\n 'aria-disabled': 0,\n // state\n 'aria-hidden': 0,\n // state\n 'aria-invalid': 0,\n // state\n 'aria-keyshortcuts': 0,\n 'aria-label': 0,\n 'aria-roledescription': 0,\n // Widget Attributes\n 'aria-autocomplete': 0,\n 'aria-checked': 0,\n 'aria-expanded': 0,\n 'aria-haspopup': 0,\n 'aria-level': 0,\n 'aria-modal': 0,\n 'aria-multiline': 0,\n 'aria-multiselectable': 0,\n 'aria-orientation': 0,\n 'aria-placeholder': 0,\n 'aria-pressed': 0,\n 'aria-readonly': 0,\n 'aria-required': 0,\n 'aria-selected': 0,\n 'aria-sort': 0,\n 'aria-valuemax': 0,\n 'aria-valuemin': 0,\n 'aria-valuenow': 0,\n 'aria-valuetext': 0,\n // Live Region Attributes\n 'aria-atomic': 0,\n 'aria-busy': 0,\n 'aria-live': 0,\n 'aria-relevant': 0,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': 0,\n 'aria-grabbed': 0,\n // Relationship Attributes\n 'aria-activedescendant': 0,\n 'aria-colcount': 0,\n 'aria-colindex': 0,\n 'aria-colspan': 0,\n 'aria-controls': 0,\n 'aria-describedby': 0,\n 'aria-errormessage': 0,\n 'aria-flowto': 0,\n 'aria-labelledby': 0,\n 'aria-owns': 0,\n 'aria-posinset': 0,\n 'aria-rowcount': 0,\n 'aria-rowindex': 0,\n 'aria-rowspan': 0,\n 'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n {\n if (hasOwnProperty$1.call(warnedProperties, name) && warnedProperties[name]) {\n return true;\n }\n\n if (rARIACamel.test(name)) {\n var ariaName = 'aria-' + name.slice(4).toLowerCase();\n var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (correctName == null) {\n error('Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n\n warnedProperties[name] = true;\n return true;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== correctName) {\n error('Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n\n if (rARIA.test(name)) {\n var lowerCasedName = name.toLowerCase();\n var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null; // If this is an aria-* attribute, but is not listed in the known DOM\n // DOM properties, then it is an invalid aria-* attribute.\n\n if (standardName == null) {\n warnedProperties[name] = true;\n return false;\n } // aria-* attributes should be lowercase; suggest the lowercase version.\n\n\n if (name !== standardName) {\n error('Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties[name] = true;\n return true;\n }\n }\n }\n\n return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n {\n var invalidProps = [];\n\n for (var key in props) {\n var isValid = validateProperty(type, key);\n\n if (!isValid) {\n invalidProps.push(key);\n }\n }\n\n var unknownPropString = invalidProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (invalidProps.length === 1) {\n error('Invalid aria prop %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n } else if (invalidProps.length > 1) {\n error('Invalid aria props %s on <%s> tag. ' + 'For details, see https://reactjs.org/link/invalid-aria-props', unknownPropString, type);\n }\n }\n}\n\nfunction validateProperties(type, props) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\nfunction validateProperties$1(type, props) {\n {\n if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n return;\n }\n\n if (props != null && props.value === null && !didWarnValueNull) {\n didWarnValueNull = true;\n\n if (type === 'select' && props.multiple) {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n } else {\n error('`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n }\n }\n }\n}\n\nvar validateProperty$1 = function () {};\n\n{\n var warnedProperties$1 = {};\n var _hasOwnProperty = Object.prototype.hasOwnProperty;\n var EVENT_NAME_REGEX = /^on./;\n var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n validateProperty$1 = function (tagName, name, value, eventRegistry) {\n if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n return true;\n }\n\n var lowerCasedName = name.toLowerCase();\n\n if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n error('React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n\n warnedProperties$1[name] = true;\n return true;\n } // We can't rely on the event system being injected on the server.\n\n\n if (eventRegistry != null) {\n var registrationNameDependencies = eventRegistry.registrationNameDependencies,\n possibleRegistrationNames = eventRegistry.possibleRegistrationNames;\n\n if (registrationNameDependencies.hasOwnProperty(name)) {\n return true;\n }\n\n var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n\n if (registrationName != null) {\n error('Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (EVENT_NAME_REGEX.test(name)) {\n error('Unknown event handler property `%s`. It will be ignored.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (EVENT_NAME_REGEX.test(name)) {\n // If no event plugins have been injected, we are in a server environment.\n // So we can't tell if the event name is correct for sure, but we can filter\n // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n if (INVALID_EVENT_NAME_REGEX.test(name)) {\n error('Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Let the ARIA attribute hook validate ARIA attributes\n\n\n if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n return true;\n }\n\n if (lowerCasedName === 'innerhtml') {\n error('Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'aria') {\n error('The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n error('Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'number' && isNaN(value)) {\n error('Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n var propertyInfo = getPropertyInfo(name);\n var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED; // Known attributes should match the casing specified in the property config.\n\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n var standardName = possibleStandardNames[lowerCasedName];\n\n if (standardName !== name) {\n error('Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n } else if (!isReserved && name !== lowerCasedName) {\n // Unknown attributes should have lowercase casing since that's how they\n // will be cased anyway with server rendering.\n error('React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n if (value) {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n } else {\n error('Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n }\n\n warnedProperties$1[name] = true;\n return true;\n } // Now that we've validated casing, do not validate\n // data types for reserved props\n\n\n if (isReserved) {\n return true;\n } // Warn when a known attribute is a bad type\n\n\n if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n warnedProperties$1[name] = true;\n return false;\n } // Warn when passing the strings 'false' or 'true' into a boolean prop\n\n\n if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n error('Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n\n warnedProperties$1[name] = true;\n return true;\n }\n\n return true;\n };\n}\n\nvar warnUnknownProperties = function (type, props, eventRegistry) {\n {\n var unknownProps = [];\n\n for (var key in props) {\n var isValid = validateProperty$1(type, key, props[key], eventRegistry);\n\n if (!isValid) {\n unknownProps.push(key);\n }\n }\n\n var unknownPropString = unknownProps.map(function (prop) {\n return '`' + prop + '`';\n }).join(', ');\n\n if (unknownProps.length === 1) {\n error('Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n } else if (unknownProps.length > 1) {\n error('Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://reactjs.org/link/attribute-behavior ', unknownPropString, type);\n }\n }\n};\n\nfunction validateProperties$2(type, props, eventRegistry) {\n if (isCustomComponent(type, props)) {\n return;\n }\n\n warnUnknownProperties(type, props, eventRegistry);\n}\n\nvar IS_EVENT_HANDLE_NON_MANAGED_NODE = 1;\nvar IS_NON_DELEGATED = 1 << 1;\nvar IS_CAPTURE_PHASE = 1 << 2;\nvar IS_REPLAYED = 1 << 4;\n// set to LEGACY_FB_SUPPORT. LEGACY_FB_SUPPORT only gets set when\n// we call willDeferLaterForLegacyFBSupport, thus not bailing out\n// will result in endless cycles like an infinite loop.\n// We also don't want to defer during event replaying.\n\nvar SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS = IS_EVENT_HANDLE_NON_MANAGED_NODE | IS_NON_DELEGATED | IS_CAPTURE_PHASE;\n\n/**\n * Gets the target node from a native browser event by accounting for\n * inconsistencies in browser DOM APIs.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {DOMEventTarget} Target node.\n */\n\nfunction getEventTarget(nativeEvent) {\n // Fallback to nativeEvent.srcElement for IE9\n // https://github.com/facebook/react/issues/12506\n var target = nativeEvent.target || nativeEvent.srcElement || window; // Normalize SVG <use> element events #4963\n\n if (target.correspondingUseElement) {\n target = target.correspondingUseElement;\n } // Safari may fire events on text nodes (Node.TEXT_NODE is 3).\n // @see http://www.quirksmode.org/js/events_properties.html\n\n\n return target.nodeType === TEXT_NODE ? target.parentNode : target;\n}\n\nvar restoreImpl = null;\nvar restoreTarget = null;\nvar restoreQueue = null;\n\nfunction restoreStateOfTarget(target) {\n // We perform this translation at the end of the event loop so that we\n // always receive the correct fiber here\n var internalInstance = getInstanceFromNode(target);\n\n if (!internalInstance) {\n // Unmounted\n return;\n }\n\n if (!(typeof restoreImpl === 'function')) {\n {\n throw Error( \"setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stateNode = internalInstance.stateNode; // Guard against Fiber being unmounted.\n\n if (stateNode) {\n var _props = getFiberCurrentPropsFromNode(stateNode);\n\n restoreImpl(internalInstance.stateNode, internalInstance.type, _props);\n }\n}\n\nfunction setRestoreImplementation(impl) {\n restoreImpl = impl;\n}\nfunction enqueueStateRestore(target) {\n if (restoreTarget) {\n if (restoreQueue) {\n restoreQueue.push(target);\n } else {\n restoreQueue = [target];\n }\n } else {\n restoreTarget = target;\n }\n}\nfunction needsStateRestore() {\n return restoreTarget !== null || restoreQueue !== null;\n}\nfunction restoreStateIfNeeded() {\n if (!restoreTarget) {\n return;\n }\n\n var target = restoreTarget;\n var queuedTargets = restoreQueue;\n restoreTarget = null;\n restoreQueue = null;\n restoreStateOfTarget(target);\n\n if (queuedTargets) {\n for (var i = 0; i < queuedTargets.length; i++) {\n restoreStateOfTarget(queuedTargets[i]);\n }\n }\n}\n\n// the renderer. Such as when we're dispatching events or if third party\n// libraries need to call batchedUpdates. Eventually, this API will go away when\n// everything is batched by default. We'll then have a similar API to opt-out of\n// scheduled work and instead do synchronous work.\n// Defaults\n\nvar batchedUpdatesImpl = function (fn, bookkeeping) {\n return fn(bookkeeping);\n};\n\nvar discreteUpdatesImpl = function (fn, a, b, c, d) {\n return fn(a, b, c, d);\n};\n\nvar flushDiscreteUpdatesImpl = function () {};\n\nvar batchedEventUpdatesImpl = batchedUpdatesImpl;\nvar isInsideEventHandler = false;\nvar isBatchingEventUpdates = false;\n\nfunction finishEventHandler() {\n // Here we wait until all updates have propagated, which is important\n // when using controlled components within layers:\n // https://github.com/facebook/react/issues/1698\n // Then we restore state of any controlled component.\n var controlledComponentsHavePendingUpdates = needsStateRestore();\n\n if (controlledComponentsHavePendingUpdates) {\n // If a controlled event was fired, we may need to restore the state of\n // the DOM node back to the controlled value. This is necessary when React\n // bails out of the update without touching the DOM.\n flushDiscreteUpdatesImpl();\n restoreStateIfNeeded();\n }\n}\n\nfunction batchedUpdates(fn, bookkeeping) {\n if (isInsideEventHandler) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(bookkeeping);\n }\n\n isInsideEventHandler = true;\n\n try {\n return batchedUpdatesImpl(fn, bookkeeping);\n } finally {\n isInsideEventHandler = false;\n finishEventHandler();\n }\n}\nfunction batchedEventUpdates(fn, a, b) {\n if (isBatchingEventUpdates) {\n // If we are currently inside another batch, we need to wait until it\n // fully completes before restoring state.\n return fn(a, b);\n }\n\n isBatchingEventUpdates = true;\n\n try {\n return batchedEventUpdatesImpl(fn, a, b);\n } finally {\n isBatchingEventUpdates = false;\n finishEventHandler();\n }\n}\nfunction discreteUpdates(fn, a, b, c, d) {\n var prevIsInsideEventHandler = isInsideEventHandler;\n isInsideEventHandler = true;\n\n try {\n return discreteUpdatesImpl(fn, a, b, c, d);\n } finally {\n isInsideEventHandler = prevIsInsideEventHandler;\n\n if (!isInsideEventHandler) {\n finishEventHandler();\n }\n }\n}\nfunction flushDiscreteUpdatesIfNeeded(timeStamp) {\n {\n if (!isInsideEventHandler) {\n flushDiscreteUpdatesImpl();\n }\n }\n}\nfunction setBatchingImplementation(_batchedUpdatesImpl, _discreteUpdatesImpl, _flushDiscreteUpdatesImpl, _batchedEventUpdatesImpl) {\n batchedUpdatesImpl = _batchedUpdatesImpl;\n discreteUpdatesImpl = _discreteUpdatesImpl;\n flushDiscreteUpdatesImpl = _flushDiscreteUpdatesImpl;\n batchedEventUpdatesImpl = _batchedEventUpdatesImpl;\n}\n\nfunction isInteractive(tag) {\n return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';\n}\n\nfunction shouldPreventMouseEvent(name, type, props) {\n switch (name) {\n case 'onClick':\n case 'onClickCapture':\n case 'onDoubleClick':\n case 'onDoubleClickCapture':\n case 'onMouseDown':\n case 'onMouseDownCapture':\n case 'onMouseMove':\n case 'onMouseMoveCapture':\n case 'onMouseUp':\n case 'onMouseUpCapture':\n case 'onMouseEnter':\n return !!(props.disabled && isInteractive(type));\n\n default:\n return false;\n }\n}\n/**\n * @param {object} inst The instance, which is the source of events.\n * @param {string} registrationName Name of listener (e.g. `onClick`).\n * @return {?function} The stored callback.\n */\n\n\nfunction getListener(inst, registrationName) {\n var stateNode = inst.stateNode;\n\n if (stateNode === null) {\n // Work in progress (ex: onload events in incremental mode).\n return null;\n }\n\n var props = getFiberCurrentPropsFromNode(stateNode);\n\n if (props === null) {\n // Work in progress.\n return null;\n }\n\n var listener = props[registrationName];\n\n if (shouldPreventMouseEvent(registrationName, inst.type, props)) {\n return null;\n }\n\n if (!(!listener || typeof listener === 'function')) {\n {\n throw Error( \"Expected `\" + registrationName + \"` listener to be a function, instead got a value of `\" + typeof listener + \"` type.\" );\n }\n }\n\n return listener;\n}\n\nvar passiveBrowserEventsSupported = false; // Check if browser support events with passive listeners\n// https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n\nif (canUseDOM) {\n try {\n var options = {}; // $FlowFixMe: Ignore Flow complaining about needing a value\n\n Object.defineProperty(options, 'passive', {\n get: function () {\n passiveBrowserEventsSupported = true;\n }\n });\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n } catch (e) {\n passiveBrowserEventsSupported = false;\n }\n}\n\nfunction invokeGuardedCallbackProd(name, func, context, a, b, c, d, e, f) {\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n try {\n func.apply(context, funcArgs);\n } catch (error) {\n this.onError(error);\n }\n}\n\nvar invokeGuardedCallbackImpl = invokeGuardedCallbackProd;\n\n{\n // In DEV mode, we swap out invokeGuardedCallback for a special version\n // that plays more nicely with the browser's DevTools. The idea is to preserve\n // \"Pause on exceptions\" behavior. Because React wraps all user-provided\n // functions in invokeGuardedCallback, and the production version of\n // invokeGuardedCallback uses a try-catch, all user exceptions are treated\n // like caught exceptions, and the DevTools won't pause unless the developer\n // takes the extra step of enabling pause on caught exceptions. This is\n // unintuitive, though, because even though React has caught the error, from\n // the developer's perspective, the error is uncaught.\n //\n // To preserve the expected \"Pause on exceptions\" behavior, we don't use a\n // try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake\n // DOM node, and call the user-provided callback from inside an event handler\n // for that fake event. If the callback throws, the error is \"captured\" using\n // a global event handler. But because the error happens in a different\n // event loop context, it does not interrupt the normal program flow.\n // Effectively, this gives us try-catch behavior without actually using\n // try-catch. Neat!\n // Check that the browser supports the APIs we need to implement our special\n // DEV version of invokeGuardedCallback\n if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {\n var fakeNode = document.createElement('react');\n\n invokeGuardedCallbackImpl = function invokeGuardedCallbackDev(name, func, context, a, b, c, d, e, f) {\n // If document doesn't exist we know for sure we will crash in this method\n // when we call document.createEvent(). However this can cause confusing\n // errors: https://github.com/facebookincubator/create-react-app/issues/3482\n // So we preemptively throw with a better message instead.\n if (!(typeof document !== 'undefined')) {\n {\n throw Error( \"The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.\" );\n }\n }\n\n var evt = document.createEvent('Event');\n var didCall = false; // Keeps track of whether the user-provided callback threw an error. We\n // set this to true at the beginning, then set it to false right after\n // calling the function. If the function errors, `didError` will never be\n // set to false. This strategy works even if the browser is flaky and\n // fails to call our global error handler, because it doesn't rely on\n // the error event at all.\n\n var didError = true; // Keeps track of the value of window.event so that we can reset it\n // during the callback to let user code access window.event in the\n // browsers that support it.\n\n var windowEvent = window.event; // Keeps track of the descriptor of window.event to restore it after event\n // dispatching: https://github.com/facebook/react/issues/13688\n\n var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');\n\n function restoreAfterDispatch() {\n // We immediately remove the callback from event listeners so that\n // nested `invokeGuardedCallback` calls do not clash. Otherwise, a\n // nested call would trigger the fake event handlers of any call higher\n // in the stack.\n fakeNode.removeEventListener(evtType, callCallback, false); // We check for window.hasOwnProperty('event') to prevent the\n // window.event assignment in both IE <= 10 as they throw an error\n // \"Member not found\" in strict mode, and in Firefox which does not\n // support window.event.\n\n if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {\n window.event = windowEvent;\n }\n } // Create an event handler for our fake event. We will synchronously\n // dispatch our fake event using `dispatchEvent`. Inside the handler, we\n // call the user-provided callback.\n\n\n var funcArgs = Array.prototype.slice.call(arguments, 3);\n\n function callCallback() {\n didCall = true;\n restoreAfterDispatch();\n func.apply(context, funcArgs);\n didError = false;\n } // Create a global error event handler. We use this to capture the value\n // that was thrown. It's possible that this error handler will fire more\n // than once; for example, if non-React code also calls `dispatchEvent`\n // and a handler for that event throws. We should be resilient to most of\n // those cases. Even if our error event handler fires more than once, the\n // last error event is always used. If the callback actually does error,\n // we know that the last error event is the correct one, because it's not\n // possible for anything else to have happened in between our callback\n // erroring and the code that follows the `dispatchEvent` call below. If\n // the callback doesn't error, but the error event was fired, we know to\n // ignore it because `didError` will be false, as described above.\n\n\n var error; // Use this to track whether the error event is ever called.\n\n var didSetError = false;\n var isCrossOriginError = false;\n\n function handleWindowError(event) {\n error = event.error;\n didSetError = true;\n\n if (error === null && event.colno === 0 && event.lineno === 0) {\n isCrossOriginError = true;\n }\n\n if (event.defaultPrevented) {\n // Some other error handler has prevented default.\n // Browsers silence the error report if this happens.\n // We'll remember this to later decide whether to log it or not.\n if (error != null && typeof error === 'object') {\n try {\n error._suppressLogging = true;\n } catch (inner) {// Ignore.\n }\n }\n }\n } // Create a fake event type.\n\n\n var evtType = \"react-\" + (name ? name : 'invokeguardedcallback'); // Attach our event handlers\n\n window.addEventListener('error', handleWindowError);\n fakeNode.addEventListener(evtType, callCallback, false); // Synchronously dispatch our fake event. If the user-provided function\n // errors, it will trigger our global error handler.\n\n evt.initEvent(evtType, false, false);\n fakeNode.dispatchEvent(evt);\n\n if (windowEventDescriptor) {\n Object.defineProperty(window, 'event', windowEventDescriptor);\n }\n\n if (didCall && didError) {\n if (!didSetError) {\n // The callback errored, but the error event never fired.\n error = new Error('An error was thrown inside one of your components, but React ' + \"doesn't know what it was. This is likely due to browser \" + 'flakiness. React does its best to preserve the \"Pause on ' + 'exceptions\" behavior of the DevTools, which requires some ' + \"DEV-mode only tricks. It's possible that these don't work in \" + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');\n } else if (isCrossOriginError) {\n error = new Error(\"A cross-origin error was thrown. React doesn't have access to \" + 'the actual error object in development. ' + 'See https://reactjs.org/link/crossorigin-error for more information.');\n }\n\n this.onError(error);\n } // Remove our event listeners\n\n\n window.removeEventListener('error', handleWindowError);\n\n if (!didCall) {\n // Something went really wrong, and our event was not dispatched.\n // https://github.com/facebook/react/issues/16734\n // https://github.com/facebook/react/issues/16585\n // Fall back to the production implementation.\n restoreAfterDispatch();\n return invokeGuardedCallbackProd.apply(this, arguments);\n }\n };\n }\n}\n\nvar invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;\n\nvar hasError = false;\nvar caughtError = null; // Used by event system to capture/rethrow the first error.\n\nvar hasRethrowError = false;\nvar rethrowError = null;\nvar reporter = {\n onError: function (error) {\n hasError = true;\n caughtError = error;\n }\n};\n/**\n * Call a function while guarding against errors that happens within it.\n * Returns an error if it throws, otherwise null.\n *\n * In production, this is implemented using a try-catch. The reason we don't\n * use a try-catch directly is so that we can swap out a different\n * implementation in DEV mode.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {\n hasError = false;\n caughtError = null;\n invokeGuardedCallbackImpl$1.apply(reporter, arguments);\n}\n/**\n * Same as invokeGuardedCallback, but instead of returning an error, it stores\n * it in a global so it can be rethrown by `rethrowCaughtError` later.\n * TODO: See if caughtError and rethrowError can be unified.\n *\n * @param {String} name of the guard to use for logging or debugging\n * @param {Function} func The function to invoke\n * @param {*} context The context to use when calling the function\n * @param {...*} args Arguments for function\n */\n\nfunction invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {\n invokeGuardedCallback.apply(this, arguments);\n\n if (hasError) {\n var error = clearCaughtError();\n\n if (!hasRethrowError) {\n hasRethrowError = true;\n rethrowError = error;\n }\n }\n}\n/**\n * During execution of guarded functions we will capture the first error which\n * we will rethrow to be handled by the top level error handler.\n */\n\nfunction rethrowCaughtError() {\n if (hasRethrowError) {\n var error = rethrowError;\n hasRethrowError = false;\n rethrowError = null;\n throw error;\n }\n}\nfunction hasCaughtError() {\n return hasError;\n}\nfunction clearCaughtError() {\n if (hasError) {\n var error = caughtError;\n hasError = false;\n caughtError = null;\n return error;\n } else {\n {\n {\n throw Error( \"clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\n/**\n * `ReactInstanceMap` maintains a mapping from a public facing stateful\n * instance (key) and the internal representation (value). This allows public\n * methods to accept the user facing instance as an argument and map them back\n * to internal methods.\n *\n * Note that this module is currently shared and assumed to be stateless.\n * If this becomes an actual Map, that will break.\n */\nfunction get(key) {\n return key._reactInternals;\n}\nfunction has(key) {\n return key._reactInternals !== undefined;\n}\nfunction set(key, value) {\n key._reactInternals = value;\n}\n\n// Don't change these two values. They're used by React Dev Tools.\nvar NoFlags =\n/* */\n0;\nvar PerformedWork =\n/* */\n1; // You can change the rest (and add more).\n\nvar Placement =\n/* */\n2;\nvar Update =\n/* */\n4;\nvar PlacementAndUpdate =\n/* */\n6;\nvar Deletion =\n/* */\n8;\nvar ContentReset =\n/* */\n16;\nvar Callback =\n/* */\n32;\nvar DidCapture =\n/* */\n64;\nvar Ref =\n/* */\n128;\nvar Snapshot =\n/* */\n256;\nvar Passive =\n/* */\n512; // TODO (effects) Remove this bit once the new reconciler is synced to the old.\n\nvar PassiveUnmountPendingDev =\n/* */\n8192;\nvar Hydrating =\n/* */\n1024;\nvar HydratingAndUpdate =\n/* */\n1028; // Passive & Update & Callback & Ref & Snapshot\n\nvar LifecycleEffectMask =\n/* */\n932; // Union of all host effects\n\nvar HostEffectMask =\n/* */\n2047; // These are not really side effects, but we still reuse this field.\n\nvar Incomplete =\n/* */\n2048;\nvar ShouldCapture =\n/* */\n4096;\nvar ForceUpdateForLegacySuspense =\n/* */\n16384; // Static tags describe aspects of a fiber that are not specific to a render,\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nfunction getNearestMountedFiber(fiber) {\n var node = fiber;\n var nearestMounted = fiber;\n\n if (!fiber.alternate) {\n // If there is no alternate, this might be a new tree that isn't inserted\n // yet. If it is, then it will have a pending insertion effect on it.\n var nextNode = node;\n\n do {\n node = nextNode;\n\n if ((node.flags & (Placement | Hydrating)) !== NoFlags) {\n // This is an insertion or in-progress hydration. The nearest possible\n // mounted fiber is the parent but we need to continue to figure out\n // if that one is still mounted.\n nearestMounted = node.return;\n }\n\n nextNode = node.return;\n } while (nextNode);\n } else {\n while (node.return) {\n node = node.return;\n }\n }\n\n if (node.tag === HostRoot) {\n // TODO: Check if this was a nested HostRoot when used with\n // renderContainerIntoSubtree.\n return nearestMounted;\n } // If we didn't hit the root, that means that we're in an disconnected tree\n // that has been unmounted.\n\n\n return null;\n}\nfunction getSuspenseInstanceFromFiber(fiber) {\n if (fiber.tag === SuspenseComponent) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState === null) {\n var current = fiber.alternate;\n\n if (current !== null) {\n suspenseState = current.memoizedState;\n }\n }\n\n if (suspenseState !== null) {\n return suspenseState.dehydrated;\n }\n }\n\n return null;\n}\nfunction getContainerFromFiber(fiber) {\n return fiber.tag === HostRoot ? fiber.stateNode.containerInfo : null;\n}\nfunction isFiberMounted(fiber) {\n return getNearestMountedFiber(fiber) === fiber;\n}\nfunction isMounted(component) {\n {\n var owner = ReactCurrentOwner.current;\n\n if (owner !== null && owner.tag === ClassComponent) {\n var ownerFiber = owner;\n var instance = ownerFiber.stateNode;\n\n if (!instance._warnedAboutRefsInRender) {\n error('%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component');\n }\n\n instance._warnedAboutRefsInRender = true;\n }\n }\n\n var fiber = get(component);\n\n if (!fiber) {\n return false;\n }\n\n return getNearestMountedFiber(fiber) === fiber;\n}\n\nfunction assertIsMounted(fiber) {\n if (!(getNearestMountedFiber(fiber) === fiber)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n}\n\nfunction findCurrentFiberUsingSlowPath(fiber) {\n var alternate = fiber.alternate;\n\n if (!alternate) {\n // If there is no alternate, then we only need to check if it is mounted.\n var nearestMounted = getNearestMountedFiber(fiber);\n\n if (!(nearestMounted !== null)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (nearestMounted !== fiber) {\n return null;\n }\n\n return fiber;\n } // If we have two possible branches, we'll walk backwards up to the root\n // to see what path the root points to. On the way we may hit one of the\n // special cases and we'll deal with them.\n\n\n var a = fiber;\n var b = alternate;\n\n while (true) {\n var parentA = a.return;\n\n if (parentA === null) {\n // We're at the root.\n break;\n }\n\n var parentB = parentA.alternate;\n\n if (parentB === null) {\n // There is no alternate. This is an unusual case. Currently, it only\n // happens when a Suspense component is hidden. An extra fragment fiber\n // is inserted in between the Suspense fiber and its children. Skip\n // over this extra fragment fiber and proceed to the next parent.\n var nextParent = parentA.return;\n\n if (nextParent !== null) {\n a = b = nextParent;\n continue;\n } // If there's no parent, we're at the root.\n\n\n break;\n } // If both copies of the parent fiber point to the same child, we can\n // assume that the child is current. This happens when we bailout on low\n // priority: the bailed out fiber's child reuses the current child.\n\n\n if (parentA.child === parentB.child) {\n var child = parentA.child;\n\n while (child) {\n if (child === a) {\n // We've determined that A is the current branch.\n assertIsMounted(parentA);\n return fiber;\n }\n\n if (child === b) {\n // We've determined that B is the current branch.\n assertIsMounted(parentA);\n return alternate;\n }\n\n child = child.sibling;\n } // We should never have an alternate for any mounting node. So the only\n // way this could possibly happen is if this was unmounted, if at all.\n\n\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n }\n\n if (a.return !== b.return) {\n // The return pointer of A and the return pointer of B point to different\n // fibers. We assume that return pointers never criss-cross, so A must\n // belong to the child set of A.return, and B must belong to the child\n // set of B.return.\n a = parentA;\n b = parentB;\n } else {\n // The return pointers point to the same fiber. We'll have to use the\n // default, slow path: scan the child sets of each parent alternate to see\n // which child belongs to which set.\n //\n // Search parent A's child set\n var didFindChild = false;\n var _child = parentA.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentA;\n b = parentB;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentA;\n a = parentB;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n // Search parent B's child set\n _child = parentB.child;\n\n while (_child) {\n if (_child === a) {\n didFindChild = true;\n a = parentB;\n b = parentA;\n break;\n }\n\n if (_child === b) {\n didFindChild = true;\n b = parentB;\n a = parentA;\n break;\n }\n\n _child = _child.sibling;\n }\n\n if (!didFindChild) {\n {\n throw Error( \"Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.\" );\n }\n }\n }\n }\n\n if (!(a.alternate === b)) {\n {\n throw Error( \"Return fibers should always be each others' alternates. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n } // If the root is not a host container, we're in a disconnected tree. I.e.\n // unmounted.\n\n\n if (!(a.tag === HostRoot)) {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n\n if (a.stateNode.current === a) {\n // We've determined that A is the current branch.\n return fiber;\n } // Otherwise B has to be current branch.\n\n\n return alternate;\n}\nfunction findCurrentHostFiber(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText) {\n return node;\n } else if (node.child) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction findCurrentHostFiberWithNoPortals(parent) {\n var currentParent = findCurrentFiberUsingSlowPath(parent);\n\n if (!currentParent) {\n return null;\n } // Next we'll drill down this component to find the first HostComponent/Text.\n\n\n var node = currentParent;\n\n while (true) {\n if (node.tag === HostComponent || node.tag === HostText || enableFundamentalAPI ) {\n return node;\n } else if (node.child && node.tag !== HostPortal) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === currentParent) {\n return null;\n }\n\n while (!node.sibling) {\n if (!node.return || node.return === currentParent) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n } // Flow needs the return null here, but ESLint complains about it.\n // eslint-disable-next-line no-unreachable\n\n\n return null;\n}\nfunction doesFiberContain(parentFiber, childFiber) {\n var node = childFiber;\n var parentFiberAlternate = parentFiber.alternate;\n\n while (node !== null) {\n if (node === parentFiber || node === parentFiberAlternate) {\n return true;\n }\n\n node = node.return;\n }\n\n return false;\n}\n\nvar attemptUserBlockingHydration;\nfunction setAttemptUserBlockingHydration(fn) {\n attemptUserBlockingHydration = fn;\n}\nvar attemptContinuousHydration;\nfunction setAttemptContinuousHydration(fn) {\n attemptContinuousHydration = fn;\n}\nvar attemptHydrationAtCurrentPriority;\nfunction setAttemptHydrationAtCurrentPriority(fn) {\n attemptHydrationAtCurrentPriority = fn;\n}\nvar attemptHydrationAtPriority;\nfunction setAttemptHydrationAtPriority(fn) {\n attemptHydrationAtPriority = fn;\n} // TODO: Upgrade this definition once we're on a newer version of Flow that\nvar hasScheduledReplayAttempt = false; // The queue of discrete events to be replayed.\n\nvar queuedDiscreteEvents = []; // Indicates if any continuous event targets are non-null for early bailout.\n// if the last target was dehydrated.\n\nvar queuedFocus = null;\nvar queuedDrag = null;\nvar queuedMouse = null; // For pointer events there can be one latest event per pointerId.\n\nvar queuedPointers = new Map();\nvar queuedPointerCaptures = new Map(); // We could consider replaying selectionchange and touchmoves too.\n\nvar queuedExplicitHydrationTargets = [];\nfunction hasQueuedDiscreteEvents() {\n return queuedDiscreteEvents.length > 0;\n}\nvar discreteReplayableEvents = ['mousedown', 'mouseup', 'touchcancel', 'touchend', 'touchstart', 'auxclick', 'dblclick', 'pointercancel', 'pointerdown', 'pointerup', 'dragend', 'dragstart', 'drop', 'compositionend', 'compositionstart', 'keydown', 'keypress', 'keyup', 'input', 'textInput', // Intentionally camelCase\n'copy', 'cut', 'paste', 'click', 'change', 'contextmenu', 'reset', 'submit'];\nfunction isReplayableDiscreteEvent(eventType) {\n return discreteReplayableEvents.indexOf(eventType) > -1;\n}\n\nfunction createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n return {\n blockedOn: blockedOn,\n domEventName: domEventName,\n eventSystemFlags: eventSystemFlags | IS_REPLAYED,\n nativeEvent: nativeEvent,\n targetContainers: [targetContainer]\n };\n}\n\nfunction queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n queuedDiscreteEvents.push(queuedEvent);\n} // Resets the replaying for this type of continuous event to no event.\n\nfunction clearIfContinuousEvent(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'focusin':\n case 'focusout':\n queuedFocus = null;\n break;\n\n case 'dragenter':\n case 'dragleave':\n queuedDrag = null;\n break;\n\n case 'mouseover':\n case 'mouseout':\n queuedMouse = null;\n break;\n\n case 'pointerover':\n case 'pointerout':\n {\n var pointerId = nativeEvent.pointerId;\n queuedPointers.delete(pointerId);\n break;\n }\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n {\n var _pointerId = nativeEvent.pointerId;\n queuedPointerCaptures.delete(_pointerId);\n break;\n }\n }\n}\n\nfunction accumulateOrCreateContinuousQueuedReplayableEvent(existingQueuedEvent, blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (existingQueuedEvent === null || existingQueuedEvent.nativeEvent !== nativeEvent) {\n var queuedEvent = createQueuedReplayableEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn !== null) {\n var _fiber2 = getInstanceFromNode(blockedOn);\n\n if (_fiber2 !== null) {\n // Attempt to increase the priority of this target.\n attemptContinuousHydration(_fiber2);\n }\n }\n\n return queuedEvent;\n } // If we have already queued this exact event, then it's because\n // the different event systems have different DOM event listeners.\n // We can accumulate the flags, and the targetContainers, and\n // store a single event to be replayed.\n\n\n existingQueuedEvent.eventSystemFlags |= eventSystemFlags;\n var targetContainers = existingQueuedEvent.targetContainers;\n\n if (targetContainer !== null && targetContainers.indexOf(targetContainer) === -1) {\n targetContainers.push(targetContainer);\n }\n\n return existingQueuedEvent;\n}\n\nfunction queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // These set relatedTarget to null because the replayed event will be treated as if we\n // moved from outside the window (no target) onto the target once it hydrates.\n // Instead of mutating we could clone the event.\n switch (domEventName) {\n case 'focusin':\n {\n var focusEvent = nativeEvent;\n queuedFocus = accumulateOrCreateContinuousQueuedReplayableEvent(queuedFocus, blockedOn, domEventName, eventSystemFlags, targetContainer, focusEvent);\n return true;\n }\n\n case 'dragenter':\n {\n var dragEvent = nativeEvent;\n queuedDrag = accumulateOrCreateContinuousQueuedReplayableEvent(queuedDrag, blockedOn, domEventName, eventSystemFlags, targetContainer, dragEvent);\n return true;\n }\n\n case 'mouseover':\n {\n var mouseEvent = nativeEvent;\n queuedMouse = accumulateOrCreateContinuousQueuedReplayableEvent(queuedMouse, blockedOn, domEventName, eventSystemFlags, targetContainer, mouseEvent);\n return true;\n }\n\n case 'pointerover':\n {\n var pointerEvent = nativeEvent;\n var pointerId = pointerEvent.pointerId;\n queuedPointers.set(pointerId, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointers.get(pointerId) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, pointerEvent));\n return true;\n }\n\n case 'gotpointercapture':\n {\n var _pointerEvent = nativeEvent;\n var _pointerId2 = _pointerEvent.pointerId;\n queuedPointerCaptures.set(_pointerId2, accumulateOrCreateContinuousQueuedReplayableEvent(queuedPointerCaptures.get(_pointerId2) || null, blockedOn, domEventName, eventSystemFlags, targetContainer, _pointerEvent));\n return true;\n }\n }\n\n return false;\n} // Check if this target is unblocked. Returns true if it's unblocked.\n\nfunction attemptExplicitHydrationTarget(queuedTarget) {\n // TODO: This function shares a lot of logic with attemptToDispatchEvent.\n // Try to unify them. It's a bit tricky since it would require two return\n // values.\n var targetInst = getClosestInstanceFromNode(queuedTarget.target);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted !== null) {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // We're blocked on hydrating this boundary.\n // Increase its priority.\n queuedTarget.blockedOn = instance;\n attemptHydrationAtPriority(queuedTarget.lanePriority, function () {\n Scheduler.unstable_runWithPriority(queuedTarget.priority, function () {\n attemptHydrationAtCurrentPriority(nearestMounted);\n });\n });\n return;\n }\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n queuedTarget.blockedOn = getContainerFromFiber(nearestMounted); // We don't currently have a way to increase the priority of\n // a root other than sync.\n\n return;\n }\n }\n }\n }\n\n queuedTarget.blockedOn = null;\n}\n\nfunction attemptReplayContinuousQueuedEvent(queuedEvent) {\n if (queuedEvent.blockedOn !== null) {\n return false;\n }\n\n var targetContainers = queuedEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(queuedEvent.domEventName, queuedEvent.eventSystemFlags, targetContainer, queuedEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n var _fiber3 = getInstanceFromNode(nextBlockedOn);\n\n if (_fiber3 !== null) {\n attemptContinuousHydration(_fiber3);\n }\n\n queuedEvent.blockedOn = nextBlockedOn;\n return false;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n return true;\n}\n\nfunction attemptReplayContinuousQueuedEventInMap(queuedEvent, key, map) {\n if (attemptReplayContinuousQueuedEvent(queuedEvent)) {\n map.delete(key);\n }\n}\n\nfunction replayUnblockedEvents() {\n hasScheduledReplayAttempt = false; // First replay discrete events.\n\n while (queuedDiscreteEvents.length > 0) {\n var nextDiscreteEvent = queuedDiscreteEvents[0];\n\n if (nextDiscreteEvent.blockedOn !== null) {\n // We're still blocked.\n // Increase the priority of this boundary to unblock\n // the next discrete event.\n var _fiber4 = getInstanceFromNode(nextDiscreteEvent.blockedOn);\n\n if (_fiber4 !== null) {\n attemptUserBlockingHydration(_fiber4);\n }\n\n break;\n }\n\n var targetContainers = nextDiscreteEvent.targetContainers;\n\n while (targetContainers.length > 0) {\n var targetContainer = targetContainers[0];\n var nextBlockedOn = attemptToDispatchEvent(nextDiscreteEvent.domEventName, nextDiscreteEvent.eventSystemFlags, targetContainer, nextDiscreteEvent.nativeEvent);\n\n if (nextBlockedOn !== null) {\n // We're still blocked. Try again later.\n nextDiscreteEvent.blockedOn = nextBlockedOn;\n break;\n } // This target container was successfully dispatched. Try the next.\n\n\n targetContainers.shift();\n }\n\n if (nextDiscreteEvent.blockedOn === null) {\n // We've successfully replayed the first event. Let's try the next one.\n queuedDiscreteEvents.shift();\n }\n } // Next replay any continuous events.\n\n\n if (queuedFocus !== null && attemptReplayContinuousQueuedEvent(queuedFocus)) {\n queuedFocus = null;\n }\n\n if (queuedDrag !== null && attemptReplayContinuousQueuedEvent(queuedDrag)) {\n queuedDrag = null;\n }\n\n if (queuedMouse !== null && attemptReplayContinuousQueuedEvent(queuedMouse)) {\n queuedMouse = null;\n }\n\n queuedPointers.forEach(attemptReplayContinuousQueuedEventInMap);\n queuedPointerCaptures.forEach(attemptReplayContinuousQueuedEventInMap);\n}\n\nfunction scheduleCallbackIfUnblocked(queuedEvent, unblocked) {\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n\n if (!hasScheduledReplayAttempt) {\n hasScheduledReplayAttempt = true; // Schedule a callback to attempt replaying as many events as are\n // now unblocked. This first might not actually be unblocked yet.\n // We could check it early to avoid scheduling an unnecessary callback.\n\n Scheduler.unstable_scheduleCallback(Scheduler.unstable_NormalPriority, replayUnblockedEvents);\n }\n }\n}\n\nfunction retryIfBlockedOn(unblocked) {\n // Mark anything that was blocked on this as no longer blocked\n // and eligible for a replay.\n if (queuedDiscreteEvents.length > 0) {\n scheduleCallbackIfUnblocked(queuedDiscreteEvents[0], unblocked); // This is a exponential search for each boundary that commits. I think it's\n // worth it because we expect very few discrete events to queue up and once\n // we are actually fully unblocked it will be fast to replay them.\n\n for (var i = 1; i < queuedDiscreteEvents.length; i++) {\n var queuedEvent = queuedDiscreteEvents[i];\n\n if (queuedEvent.blockedOn === unblocked) {\n queuedEvent.blockedOn = null;\n }\n }\n }\n\n if (queuedFocus !== null) {\n scheduleCallbackIfUnblocked(queuedFocus, unblocked);\n }\n\n if (queuedDrag !== null) {\n scheduleCallbackIfUnblocked(queuedDrag, unblocked);\n }\n\n if (queuedMouse !== null) {\n scheduleCallbackIfUnblocked(queuedMouse, unblocked);\n }\n\n var unblock = function (queuedEvent) {\n return scheduleCallbackIfUnblocked(queuedEvent, unblocked);\n };\n\n queuedPointers.forEach(unblock);\n queuedPointerCaptures.forEach(unblock);\n\n for (var _i = 0; _i < queuedExplicitHydrationTargets.length; _i++) {\n var queuedTarget = queuedExplicitHydrationTargets[_i];\n\n if (queuedTarget.blockedOn === unblocked) {\n queuedTarget.blockedOn = null;\n }\n }\n\n while (queuedExplicitHydrationTargets.length > 0) {\n var nextExplicitTarget = queuedExplicitHydrationTargets[0];\n\n if (nextExplicitTarget.blockedOn !== null) {\n // We're still blocked.\n break;\n } else {\n attemptExplicitHydrationTarget(nextExplicitTarget);\n\n if (nextExplicitTarget.blockedOn === null) {\n // We're unblocked.\n queuedExplicitHydrationTargets.shift();\n }\n }\n }\n}\n\nvar DiscreteEvent = 0;\nvar UserBlockingEvent = 1;\nvar ContinuousEvent = 2;\n\n/**\n * Generate a mapping of standard vendor prefixes using the defined style property and event name.\n *\n * @param {string} styleProp\n * @param {string} eventName\n * @returns {object}\n */\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes['Webkit' + styleProp] = 'webkit' + eventName;\n prefixes['Moz' + styleProp] = 'moz' + eventName;\n return prefixes;\n}\n/**\n * A list of event names to a configurable list of vendor prefixes.\n */\n\n\nvar vendorPrefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n animationiteration: makePrefixMap('Animation', 'AnimationIteration'),\n animationstart: makePrefixMap('Animation', 'AnimationStart'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n};\n/**\n * Event names that have already been detected and prefixed (if applicable).\n */\n\nvar prefixedEventNames = {};\n/**\n * Element to check for prefixes on.\n */\n\nvar style = {};\n/**\n * Bootstrap if a DOM exists.\n */\n\nif (canUseDOM) {\n style = document.createElement('div').style; // On some platforms, in particular some releases of Android 4.x,\n // the un-prefixed \"animation\" and \"transition\" properties are defined on the\n // style object but the events that fire will still be prefixed, so we need\n // to check if the un-prefixed events are usable, and if not remove them from the map.\n\n if (!('AnimationEvent' in window)) {\n delete vendorPrefixes.animationend.animation;\n delete vendorPrefixes.animationiteration.animation;\n delete vendorPrefixes.animationstart.animation;\n } // Same as above\n\n\n if (!('TransitionEvent' in window)) {\n delete vendorPrefixes.transitionend.transition;\n }\n}\n/**\n * Attempts to determine the correct vendor prefixed event name.\n *\n * @param {string} eventName\n * @returns {string}\n */\n\n\nfunction getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n } else if (!vendorPrefixes[eventName]) {\n return eventName;\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n for (var styleProp in prefixMap) {\n if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {\n return prefixedEventNames[eventName] = prefixMap[styleProp];\n }\n }\n\n return eventName;\n}\n\nvar ANIMATION_END = getVendorPrefixedEventName('animationend');\nvar ANIMATION_ITERATION = getVendorPrefixedEventName('animationiteration');\nvar ANIMATION_START = getVendorPrefixedEventName('animationstart');\nvar TRANSITION_END = getVendorPrefixedEventName('transitionend');\n\nvar topLevelEventsToReactNames = new Map();\nvar eventPriorities = new Map(); // We store most of the events in this module in pairs of two strings so we can re-use\n// the code required to apply the same logic for event prioritization and that of the\n// SimpleEventPlugin. This complicates things slightly, but the aim is to reduce code\n// duplication (for which there would be quite a bit). For the events that are not needed\n// for the SimpleEventPlugin (otherDiscreteEvents) we process them separately as an\n// array of top level events.\n// Lastly, we ignore prettier so we can keep the formatting sane.\n// prettier-ignore\n\nvar discreteEventPairsForSimpleEventPlugin = ['cancel', 'cancel', 'click', 'click', 'close', 'close', 'contextmenu', 'contextMenu', 'copy', 'copy', 'cut', 'cut', 'auxclick', 'auxClick', 'dblclick', 'doubleClick', // Careful!\n'dragend', 'dragEnd', 'dragstart', 'dragStart', 'drop', 'drop', 'focusin', 'focus', // Careful!\n'focusout', 'blur', // Careful!\n'input', 'input', 'invalid', 'invalid', 'keydown', 'keyDown', 'keypress', 'keyPress', 'keyup', 'keyUp', 'mousedown', 'mouseDown', 'mouseup', 'mouseUp', 'paste', 'paste', 'pause', 'pause', 'play', 'play', 'pointercancel', 'pointerCancel', 'pointerdown', 'pointerDown', 'pointerup', 'pointerUp', 'ratechange', 'rateChange', 'reset', 'reset', 'seeked', 'seeked', 'submit', 'submit', 'touchcancel', 'touchCancel', 'touchend', 'touchEnd', 'touchstart', 'touchStart', 'volumechange', 'volumeChange'];\nvar otherDiscreteEvents = ['change', 'selectionchange', 'textInput', 'compositionstart', 'compositionend', 'compositionupdate'];\n\n\nvar userBlockingPairsForSimpleEventPlugin = ['drag', 'drag', 'dragenter', 'dragEnter', 'dragexit', 'dragExit', 'dragleave', 'dragLeave', 'dragover', 'dragOver', 'mousemove', 'mouseMove', 'mouseout', 'mouseOut', 'mouseover', 'mouseOver', 'pointermove', 'pointerMove', 'pointerout', 'pointerOut', 'pointerover', 'pointerOver', 'scroll', 'scroll', 'toggle', 'toggle', 'touchmove', 'touchMove', 'wheel', 'wheel']; // prettier-ignore\n\nvar continuousPairsForSimpleEventPlugin = ['abort', 'abort', ANIMATION_END, 'animationEnd', ANIMATION_ITERATION, 'animationIteration', ANIMATION_START, 'animationStart', 'canplay', 'canPlay', 'canplaythrough', 'canPlayThrough', 'durationchange', 'durationChange', 'emptied', 'emptied', 'encrypted', 'encrypted', 'ended', 'ended', 'error', 'error', 'gotpointercapture', 'gotPointerCapture', 'load', 'load', 'loadeddata', 'loadedData', 'loadedmetadata', 'loadedMetadata', 'loadstart', 'loadStart', 'lostpointercapture', 'lostPointerCapture', 'playing', 'playing', 'progress', 'progress', 'seeking', 'seeking', 'stalled', 'stalled', 'suspend', 'suspend', 'timeupdate', 'timeUpdate', TRANSITION_END, 'transitionEnd', 'waiting', 'waiting'];\n/**\n * Turns\n * ['abort', ...]\n *\n * into\n *\n * topLevelEventsToReactNames = new Map([\n * ['abort', 'onAbort'],\n * ]);\n *\n * and registers them.\n */\n\nfunction registerSimplePluginEventsAndSetTheirPriorities(eventTypes, priority) {\n // As the event types are in pairs of two, we need to iterate\n // through in twos. The events are in pairs of two to save code\n // and improve init perf of processing this array, as it will\n // result in far fewer object allocations and property accesses\n // if we only use three arrays to process all the categories of\n // instead of tuples.\n for (var i = 0; i < eventTypes.length; i += 2) {\n var topEvent = eventTypes[i];\n var event = eventTypes[i + 1];\n var capitalizedEvent = event[0].toUpperCase() + event.slice(1);\n var reactName = 'on' + capitalizedEvent;\n eventPriorities.set(topEvent, priority);\n topLevelEventsToReactNames.set(topEvent, reactName);\n registerTwoPhaseEvent(reactName, [topEvent]);\n }\n}\n\nfunction setEventPriorities(eventTypes, priority) {\n for (var i = 0; i < eventTypes.length; i++) {\n eventPriorities.set(eventTypes[i], priority);\n }\n}\n\nfunction getEventPriorityForPluginSystem(domEventName) {\n var priority = eventPriorities.get(domEventName); // Default to a ContinuousEvent. Note: we might\n // want to warn if we can't detect the priority\n // for the event.\n\n return priority === undefined ? ContinuousEvent : priority;\n}\nfunction registerSimpleEvents() {\n registerSimplePluginEventsAndSetTheirPriorities(discreteEventPairsForSimpleEventPlugin, DiscreteEvent);\n registerSimplePluginEventsAndSetTheirPriorities(userBlockingPairsForSimpleEventPlugin, UserBlockingEvent);\n registerSimplePluginEventsAndSetTheirPriorities(continuousPairsForSimpleEventPlugin, ContinuousEvent);\n setEventPriorities(otherDiscreteEvents, DiscreteEvent);\n}\n\nvar Scheduler_now = Scheduler.unstable_now;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority = 99;\nvar UserBlockingPriority = 98;\nvar NormalPriority = 97;\nvar LowPriority = 96;\nvar IdlePriority = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority = 90;\nvar initialTimeMs = Scheduler_now(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n\nvar SyncLanePriority = 15;\nvar SyncBatchedLanePriority = 14;\nvar InputDiscreteHydrationLanePriority = 13;\nvar InputDiscreteLanePriority = 12;\nvar InputContinuousHydrationLanePriority = 11;\nvar InputContinuousLanePriority = 10;\nvar DefaultHydrationLanePriority = 9;\nvar DefaultLanePriority = 8;\nvar TransitionHydrationPriority = 7;\nvar TransitionPriority = 6;\nvar RetryLanePriority = 5;\nvar SelectiveHydrationLanePriority = 4;\nvar IdleHydrationLanePriority = 3;\nvar IdleLanePriority = 2;\nvar OffscreenLanePriority = 1;\nvar NoLanePriority = 0;\nvar TotalLanes = 31;\nvar NoLanes =\n/* */\n0;\nvar NoLane =\n/* */\n0;\nvar SyncLane =\n/* */\n1;\nvar SyncBatchedLane =\n/* */\n2;\nvar InputDiscreteHydrationLane =\n/* */\n4;\nvar InputDiscreteLanes =\n/* */\n24;\nvar InputContinuousHydrationLane =\n/* */\n32;\nvar InputContinuousLanes =\n/* */\n192;\nvar DefaultHydrationLane =\n/* */\n256;\nvar DefaultLanes =\n/* */\n3584;\nvar TransitionHydrationLane =\n/* */\n4096;\nvar TransitionLanes =\n/* */\n4186112;\nvar RetryLanes =\n/* */\n62914560;\nvar SomeRetryLane =\n/* */\n33554432;\nvar SelectiveHydrationLane =\n/* */\n67108864;\nvar NonIdleLanes =\n/* */\n134217727;\nvar IdleHydrationLane =\n/* */\n134217728;\nvar IdleLanes =\n/* */\n805306368;\nvar OffscreenLane =\n/* */\n1073741824;\nvar NoTimestamp = -1;\nfunction setCurrentUpdateLanePriority(newLanePriority) {\n} // \"Registers\" used to \"return\" multiple values\n// Used by getHighestPriorityLanes and getNextLanes:\n\nvar return_highestLanePriority = DefaultLanePriority;\n\nfunction getHighestPriorityLanes(lanes) {\n if ((SyncLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncLanePriority;\n return SyncLane;\n }\n\n if ((SyncBatchedLane & lanes) !== NoLanes) {\n return_highestLanePriority = SyncBatchedLanePriority;\n return SyncBatchedLane;\n }\n\n if ((InputDiscreteHydrationLane & lanes) !== NoLanes) {\n return_highestLanePriority = InputDiscreteHydrationLanePriority;\n return InputDiscreteHydrationLane;\n }\n\n var inputDiscreteLanes = InputDiscreteLanes & lanes;\n\n if (inputDiscreteLanes !== NoLanes) {\n return_highestLanePriority = InputDiscreteLanePriority;\n return inputDiscreteLanes;\n }\n\n if ((lanes & InputContinuousHydrationLane) !== NoLanes) {\n return_highestLanePriority = InputContinuousHydrationLanePriority;\n return InputContinuousHydrationLane;\n }\n\n var inputContinuousLanes = InputContinuousLanes & lanes;\n\n if (inputContinuousLanes !== NoLanes) {\n return_highestLanePriority = InputContinuousLanePriority;\n return inputContinuousLanes;\n }\n\n if ((lanes & DefaultHydrationLane) !== NoLanes) {\n return_highestLanePriority = DefaultHydrationLanePriority;\n return DefaultHydrationLane;\n }\n\n var defaultLanes = DefaultLanes & lanes;\n\n if (defaultLanes !== NoLanes) {\n return_highestLanePriority = DefaultLanePriority;\n return defaultLanes;\n }\n\n if ((lanes & TransitionHydrationLane) !== NoLanes) {\n return_highestLanePriority = TransitionHydrationPriority;\n return TransitionHydrationLane;\n }\n\n var transitionLanes = TransitionLanes & lanes;\n\n if (transitionLanes !== NoLanes) {\n return_highestLanePriority = TransitionPriority;\n return transitionLanes;\n }\n\n var retryLanes = RetryLanes & lanes;\n\n if (retryLanes !== NoLanes) {\n return_highestLanePriority = RetryLanePriority;\n return retryLanes;\n }\n\n if (lanes & SelectiveHydrationLane) {\n return_highestLanePriority = SelectiveHydrationLanePriority;\n return SelectiveHydrationLane;\n }\n\n if ((lanes & IdleHydrationLane) !== NoLanes) {\n return_highestLanePriority = IdleHydrationLanePriority;\n return IdleHydrationLane;\n }\n\n var idleLanes = IdleLanes & lanes;\n\n if (idleLanes !== NoLanes) {\n return_highestLanePriority = IdleLanePriority;\n return idleLanes;\n }\n\n if ((OffscreenLane & lanes) !== NoLanes) {\n return_highestLanePriority = OffscreenLanePriority;\n return OffscreenLane;\n }\n\n {\n error('Should have found matching lanes. This is a bug in React.');\n } // This shouldn't be reachable, but as a fallback, return the entire bitmask.\n\n\n return_highestLanePriority = DefaultLanePriority;\n return lanes;\n}\n\nfunction schedulerPriorityToLanePriority(schedulerPriorityLevel) {\n switch (schedulerPriorityLevel) {\n case ImmediatePriority:\n return SyncLanePriority;\n\n case UserBlockingPriority:\n return InputContinuousLanePriority;\n\n case NormalPriority:\n case LowPriority:\n // TODO: Handle LowSchedulerPriority, somehow. Maybe the same lane as hydration.\n return DefaultLanePriority;\n\n case IdlePriority:\n return IdleLanePriority;\n\n default:\n return NoLanePriority;\n }\n}\nfunction lanePriorityToSchedulerPriority(lanePriority) {\n switch (lanePriority) {\n case SyncLanePriority:\n case SyncBatchedLanePriority:\n return ImmediatePriority;\n\n case InputDiscreteHydrationLanePriority:\n case InputDiscreteLanePriority:\n case InputContinuousHydrationLanePriority:\n case InputContinuousLanePriority:\n return UserBlockingPriority;\n\n case DefaultHydrationLanePriority:\n case DefaultLanePriority:\n case TransitionHydrationPriority:\n case TransitionPriority:\n case SelectiveHydrationLanePriority:\n case RetryLanePriority:\n return NormalPriority;\n\n case IdleHydrationLanePriority:\n case IdleLanePriority:\n case OffscreenLanePriority:\n return IdlePriority;\n\n case NoLanePriority:\n return NoPriority;\n\n default:\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n\n }\n}\nfunction getNextLanes(root, wipLanes) {\n // Early bailout if there's no pending work left.\n var pendingLanes = root.pendingLanes;\n\n if (pendingLanes === NoLanes) {\n return_highestLanePriority = NoLanePriority;\n return NoLanes;\n }\n\n var nextLanes = NoLanes;\n var nextLanePriority = NoLanePriority;\n var expiredLanes = root.expiredLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes; // Check if any work has expired.\n\n if (expiredLanes !== NoLanes) {\n nextLanes = expiredLanes;\n nextLanePriority = return_highestLanePriority = SyncLanePriority;\n } else {\n // Do not work on any idle work until all the non-idle work has finished,\n // even if the work is suspended.\n var nonIdlePendingLanes = pendingLanes & NonIdleLanes;\n\n if (nonIdlePendingLanes !== NoLanes) {\n var nonIdleUnblockedLanes = nonIdlePendingLanes & ~suspendedLanes;\n\n if (nonIdleUnblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdleUnblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n var nonIdlePingedLanes = nonIdlePendingLanes & pingedLanes;\n\n if (nonIdlePingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(nonIdlePingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n } else {\n // The only remaining work is Idle.\n var unblockedLanes = pendingLanes & ~suspendedLanes;\n\n if (unblockedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(unblockedLanes);\n nextLanePriority = return_highestLanePriority;\n } else {\n if (pingedLanes !== NoLanes) {\n nextLanes = getHighestPriorityLanes(pingedLanes);\n nextLanePriority = return_highestLanePriority;\n }\n }\n }\n }\n\n if (nextLanes === NoLanes) {\n // This should only be reachable if we're suspended\n // TODO: Consider warning in this path if a fallback timer is not scheduled.\n return NoLanes;\n } // If there are higher priority lanes, we'll include them even if they\n // are suspended.\n\n\n nextLanes = pendingLanes & getEqualOrHigherPriorityLanes(nextLanes); // If we're already in the middle of a render, switching lanes will interrupt\n // it and we'll lose our progress. We should only do this if the new lanes are\n // higher priority.\n\n if (wipLanes !== NoLanes && wipLanes !== nextLanes && // If we already suspended with a delay, then interrupting is fine. Don't\n // bother waiting until the root is complete.\n (wipLanes & suspendedLanes) === NoLanes) {\n getHighestPriorityLanes(wipLanes);\n var wipLanePriority = return_highestLanePriority;\n\n if (nextLanePriority <= wipLanePriority) {\n return wipLanes;\n } else {\n return_highestLanePriority = nextLanePriority;\n }\n } // Check for entangled lanes and add them to the batch.\n //\n // A lane is said to be entangled with another when it's not allowed to render\n // in a batch that does not also include the other lane. Typically we do this\n // when multiple updates have the same source, and we only want to respond to\n // the most recent event from that source.\n //\n // Note that we apply entanglements *after* checking for partial work above.\n // This means that if a lane is entangled during an interleaved event while\n // it's already rendering, we won't interrupt it. This is intentional, since\n // entanglement is usually \"best effort\": we'll try our best to render the\n // lanes in the same batch, but it's not worth throwing out partially\n // completed work in order to do it.\n //\n // For those exceptions where entanglement is semantically important, like\n // useMutableSource, we should ensure that there is no partial work at the\n // time we apply the entanglement.\n\n\n var entangledLanes = root.entangledLanes;\n\n if (entangledLanes !== NoLanes) {\n var entanglements = root.entanglements;\n var lanes = nextLanes & entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n nextLanes |= entanglements[index];\n lanes &= ~lane;\n }\n }\n\n return nextLanes;\n}\nfunction getMostRecentEventTime(root, lanes) {\n var eventTimes = root.eventTimes;\n var mostRecentEventTime = NoTimestamp;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var eventTime = eventTimes[index];\n\n if (eventTime > mostRecentEventTime) {\n mostRecentEventTime = eventTime;\n }\n\n lanes &= ~lane;\n }\n\n return mostRecentEventTime;\n}\n\nfunction computeExpirationTime(lane, currentTime) {\n // TODO: Expiration heuristic is constant per lane, so could use a map.\n getHighestPriorityLanes(lane);\n var priority = return_highestLanePriority;\n\n if (priority >= InputContinuousLanePriority) {\n // User interactions should expire slightly more quickly.\n //\n // NOTE: This is set to the corresponding constant as in Scheduler.js. When\n // we made it larger, a product metric in www regressed, suggesting there's\n // a user interaction that's being starved by a series of synchronous\n // updates. If that theory is correct, the proper solution is to fix the\n // starvation. However, this scenario supports the idea that expiration\n // times are an important safeguard when starvation does happen.\n //\n // Also note that, in the case of user input specifically, this will soon no\n // longer be an issue because we plan to make user input synchronous by\n // default (until you enter `startTransition`, of course.)\n //\n // If weren't planning to make these updates synchronous soon anyway, I\n // would probably make this number a configurable parameter.\n return currentTime + 250;\n } else if (priority >= TransitionPriority) {\n return currentTime + 5000;\n } else {\n // Anything idle priority or lower should never expire.\n return NoTimestamp;\n }\n}\n\nfunction markStarvedLanesAsExpired(root, currentTime) {\n // TODO: This gets called every time we yield. We can optimize by storing\n // the earliest expiration time on the root. Then use that to quickly bail out\n // of this function.\n var pendingLanes = root.pendingLanes;\n var suspendedLanes = root.suspendedLanes;\n var pingedLanes = root.pingedLanes;\n var expirationTimes = root.expirationTimes; // Iterate through the pending lanes and check if we've reached their\n // expiration time. If so, we'll assume the update is being starved and mark\n // it as expired to force it to finish.\n\n var lanes = pendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n var expirationTime = expirationTimes[index];\n\n if (expirationTime === NoTimestamp) {\n // Found a pending lane with no expiration time. If it's not suspended, or\n // if it's pinged, assume it's CPU-bound. Compute a new expiration time\n // using the current time.\n if ((lane & suspendedLanes) === NoLanes || (lane & pingedLanes) !== NoLanes) {\n // Assumes timestamps are monotonically increasing.\n expirationTimes[index] = computeExpirationTime(lane, currentTime);\n }\n } else if (expirationTime <= currentTime) {\n // This lane expired\n root.expiredLanes |= lane;\n }\n\n lanes &= ~lane;\n }\n} // This returns the highest priority pending lanes regardless of whether they\nfunction getLanesToRetrySynchronouslyOnError(root) {\n var everythingButOffscreen = root.pendingLanes & ~OffscreenLane;\n\n if (everythingButOffscreen !== NoLanes) {\n return everythingButOffscreen;\n }\n\n if (everythingButOffscreen & OffscreenLane) {\n return OffscreenLane;\n }\n\n return NoLanes;\n}\nfunction returnNextLanesPriority() {\n return return_highestLanePriority;\n}\nfunction includesNonIdleWork(lanes) {\n return (lanes & NonIdleLanes) !== NoLanes;\n}\nfunction includesOnlyRetries(lanes) {\n return (lanes & RetryLanes) === lanes;\n}\nfunction includesOnlyTransitions(lanes) {\n return (lanes & TransitionLanes) === lanes;\n} // To ensure consistency across multiple updates in the same event, this should\n// be a pure function, so that it always returns the same lane for given inputs.\n\nfunction findUpdateLane(lanePriority, wipLanes) {\n switch (lanePriority) {\n case NoLanePriority:\n break;\n\n case SyncLanePriority:\n return SyncLane;\n\n case SyncBatchedLanePriority:\n return SyncBatchedLane;\n\n case InputDiscreteLanePriority:\n {\n var _lane = pickArbitraryLane(InputDiscreteLanes & ~wipLanes);\n\n if (_lane === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(InputContinuousLanePriority, wipLanes);\n }\n\n return _lane;\n }\n\n case InputContinuousLanePriority:\n {\n var _lane2 = pickArbitraryLane(InputContinuousLanes & ~wipLanes);\n\n if (_lane2 === NoLane) {\n // Shift to the next priority level\n return findUpdateLane(DefaultLanePriority, wipLanes);\n }\n\n return _lane2;\n }\n\n case DefaultLanePriority:\n {\n var _lane3 = pickArbitraryLane(DefaultLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // If all the default lanes are already being worked on, look for a\n // lane in the transition range.\n _lane3 = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (_lane3 === NoLane) {\n // All the transition lanes are taken, too. This should be very\n // rare, but as a last resort, pick a default lane. This will have\n // the effect of interrupting the current work-in-progress render.\n _lane3 = pickArbitraryLane(DefaultLanes);\n }\n }\n\n return _lane3;\n }\n\n case TransitionPriority: // Should be handled by findTransitionLane instead\n\n case RetryLanePriority:\n // Should be handled by findRetryLane instead\n break;\n\n case IdleLanePriority:\n var lane = pickArbitraryLane(IdleLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(IdleLanes);\n }\n\n return lane;\n }\n\n {\n {\n throw Error( \"Invalid update priority: \" + lanePriority + \". This is a bug in React.\" );\n }\n }\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findTransitionLane(wipLanes, pendingLanes) {\n // First look for lanes that are completely unclaimed, i.e. have no\n // pending work.\n var lane = pickArbitraryLane(TransitionLanes & ~pendingLanes);\n\n if (lane === NoLane) {\n // If all lanes have pending work, look for a lane that isn't currently\n // being worked on.\n lane = pickArbitraryLane(TransitionLanes & ~wipLanes);\n\n if (lane === NoLane) {\n // If everything is being worked on, pick any lane. This has the\n // effect of interrupting the current work-in-progress.\n lane = pickArbitraryLane(TransitionLanes);\n }\n }\n\n return lane;\n} // To ensure consistency across multiple updates in the same event, this should\n// be pure function, so that it always returns the same lane for given inputs.\n\nfunction findRetryLane(wipLanes) {\n // This is a fork of `findUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n var lane = pickArbitraryLane(RetryLanes & ~wipLanes);\n\n if (lane === NoLane) {\n lane = pickArbitraryLane(RetryLanes);\n }\n\n return lane;\n}\n\nfunction getHighestPriorityLane(lanes) {\n return lanes & -lanes;\n}\n\nfunction getLowestPriorityLane(lanes) {\n // This finds the most significant non-zero bit.\n var index = 31 - clz32(lanes);\n return index < 0 ? NoLanes : 1 << index;\n}\n\nfunction getEqualOrHigherPriorityLanes(lanes) {\n return (getLowestPriorityLane(lanes) << 1) - 1;\n}\n\nfunction pickArbitraryLane(lanes) {\n // This wrapper function gets inlined. Only exists so to communicate that it\n // doesn't matter which bit is selected; you can pick any bit without\n // affecting the algorithms where its used. Here I'm using\n // getHighestPriorityLane because it requires the fewest operations.\n return getHighestPriorityLane(lanes);\n}\n\nfunction pickArbitraryLaneIndex(lanes) {\n return 31 - clz32(lanes);\n}\n\nfunction laneToIndex(lane) {\n return pickArbitraryLaneIndex(lane);\n}\n\nfunction includesSomeLane(a, b) {\n return (a & b) !== NoLanes;\n}\nfunction isSubsetOfLanes(set, subset) {\n return (set & subset) === subset;\n}\nfunction mergeLanes(a, b) {\n return a | b;\n}\nfunction removeLanes(set, subset) {\n return set & ~subset;\n} // Seems redundant, but it changes the type from a single lane (used for\n// updates) to a group of lanes (used for flushing work).\n\nfunction laneToLanes(lane) {\n return lane;\n}\nfunction higherPriorityLane(a, b) {\n // This works because the bit ranges decrease in priority as you go left.\n return a !== NoLane && a < b ? a : b;\n}\nfunction createLaneMap(initial) {\n // Intentionally pushing one by one.\n // https://v8.dev/blog/elements-kinds#avoid-creating-holes\n var laneMap = [];\n\n for (var i = 0; i < TotalLanes; i++) {\n laneMap.push(initial);\n }\n\n return laneMap;\n}\nfunction markRootUpdated(root, updateLane, eventTime) {\n root.pendingLanes |= updateLane; // TODO: Theoretically, any update to any lane can unblock any other lane. But\n // it's not practical to try every single possible combination. We need a\n // heuristic to decide which lanes to attempt to render, and in which batches.\n // For now, we use the same heuristic as in the old ExpirationTimes model:\n // retry any lane at equal or lower priority, but don't try updates at higher\n // priority without also including the lower priority updates. This works well\n // when considering updates across different priority levels, but isn't\n // sufficient for updates within the same priority, since we want to treat\n // those updates as parallel.\n // Unsuspend any update at equal or lower priority.\n\n var higherPriorityLanes = updateLane - 1; // Turns 0b1000 into 0b0111\n\n root.suspendedLanes &= higherPriorityLanes;\n root.pingedLanes &= higherPriorityLanes;\n var eventTimes = root.eventTimes;\n var index = laneToIndex(updateLane); // We can always overwrite an existing timestamp because we prefer the most\n // recent event, and we assume time is monotonically increasing.\n\n eventTimes[index] = eventTime;\n}\nfunction markRootSuspended(root, suspendedLanes) {\n root.suspendedLanes |= suspendedLanes;\n root.pingedLanes &= ~suspendedLanes; // The suspended lanes are no longer CPU-bound. Clear their expiration times.\n\n var expirationTimes = root.expirationTimes;\n var lanes = suspendedLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootPinged(root, pingedLanes, eventTime) {\n root.pingedLanes |= root.suspendedLanes & pingedLanes;\n}\nfunction markDiscreteUpdatesExpired(root) {\n root.expiredLanes |= InputDiscreteLanes & root.pendingLanes;\n}\nfunction hasDiscreteLanes(lanes) {\n return (lanes & InputDiscreteLanes) !== NoLanes;\n}\nfunction markRootMutableRead(root, updateLane) {\n root.mutableReadLanes |= updateLane & root.pendingLanes;\n}\nfunction markRootFinished(root, remainingLanes) {\n var noLongerPendingLanes = root.pendingLanes & ~remainingLanes;\n root.pendingLanes = remainingLanes; // Let's try everything again\n\n root.suspendedLanes = 0;\n root.pingedLanes = 0;\n root.expiredLanes &= remainingLanes;\n root.mutableReadLanes &= remainingLanes;\n root.entangledLanes &= remainingLanes;\n var entanglements = root.entanglements;\n var eventTimes = root.eventTimes;\n var expirationTimes = root.expirationTimes; // Clear the lanes that no longer have pending work\n\n var lanes = noLongerPendingLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] = NoLanes;\n eventTimes[index] = NoTimestamp;\n expirationTimes[index] = NoTimestamp;\n lanes &= ~lane;\n }\n}\nfunction markRootEntangled(root, entangledLanes) {\n root.entangledLanes |= entangledLanes;\n var entanglements = root.entanglements;\n var lanes = entangledLanes;\n\n while (lanes > 0) {\n var index = pickArbitraryLaneIndex(lanes);\n var lane = 1 << index;\n entanglements[index] |= entangledLanes;\n lanes &= ~lane;\n }\n}\nvar clz32 = Math.clz32 ? Math.clz32 : clz32Fallback; // Count leading zeros. Only used on lanes, so assume input is an integer.\n// Based on:\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32\n\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nfunction clz32Fallback(lanes) {\n if (lanes === 0) {\n return 32;\n }\n\n return 31 - (log(lanes) / LN2 | 0) | 0;\n}\n\n// Intentionally not named imports because Rollup would use dynamic dispatch for\nvar UserBlockingPriority$1 = Scheduler.unstable_UserBlockingPriority,\n runWithPriority = Scheduler.unstable_runWithPriority; // TODO: can we stop exporting these?\n\nvar _enabled = true; // This is exported in FB builds for use by legacy FB layer infra.\n// We'd like to remove this but it's not clear if this is safe.\n\nfunction setEnabled(enabled) {\n _enabled = !!enabled;\n}\nfunction isEnabled() {\n return _enabled;\n}\nfunction createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags) {\n var eventPriority = getEventPriorityForPluginSystem(domEventName);\n var listenerWrapper;\n\n switch (eventPriority) {\n case DiscreteEvent:\n listenerWrapper = dispatchDiscreteEvent;\n break;\n\n case UserBlockingEvent:\n listenerWrapper = dispatchUserBlockingUpdate;\n break;\n\n case ContinuousEvent:\n default:\n listenerWrapper = dispatchEvent;\n break;\n }\n\n return listenerWrapper.bind(null, domEventName, eventSystemFlags, targetContainer);\n}\n\nfunction dispatchDiscreteEvent(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n flushDiscreteUpdatesIfNeeded(nativeEvent.timeStamp);\n }\n\n discreteUpdates(dispatchEvent, domEventName, eventSystemFlags, container, nativeEvent);\n}\n\nfunction dispatchUserBlockingUpdate(domEventName, eventSystemFlags, container, nativeEvent) {\n {\n runWithPriority(UserBlockingPriority$1, dispatchEvent.bind(null, domEventName, eventSystemFlags, container, nativeEvent));\n }\n}\n\nfunction dispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n if (!_enabled) {\n return;\n }\n\n var allowReplay = true;\n\n {\n // TODO: replaying capture phase events is currently broken\n // because we used to do it during top-level native bubble handlers\n // but now we use different bubble and capture handlers.\n // In eager mode, we attach capture listeners early, so we need\n // to filter them out until we fix the logic to handle them correctly.\n // This could've been outside the flag but I put it inside to reduce risk.\n allowReplay = (eventSystemFlags & IS_CAPTURE_PHASE) === 0;\n }\n\n if (allowReplay && hasQueuedDiscreteEvents() && isReplayableDiscreteEvent(domEventName)) {\n // If we already have a queue of discrete events, and this is another discrete\n // event, then we can't dispatch it regardless of its target, since they\n // need to dispatch in order.\n queueDiscreteEvent(null, // Flags that we're not actually blocked on anything as far as we know.\n domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n var blockedOn = attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent);\n\n if (blockedOn === null) {\n // We successfully dispatched this event.\n if (allowReplay) {\n clearIfContinuousEvent(domEventName, nativeEvent);\n }\n\n return;\n }\n\n if (allowReplay) {\n if (isReplayableDiscreteEvent(domEventName)) {\n // This this to be replayed later once the target is available.\n queueDiscreteEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent);\n return;\n }\n\n if (queueIfContinuousEvent(blockedOn, domEventName, eventSystemFlags, targetContainer, nativeEvent)) {\n return;\n } // We need to clear only if we didn't queue because\n // queueing is accummulative.\n\n\n clearIfContinuousEvent(domEventName, nativeEvent);\n } // This is not replayable so we'll invoke it but without a target,\n // in case the event system needs to trace it.\n\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, null, targetContainer);\n} // Attempt dispatching an event. Returns a SuspenseInstance or Container if it's blocked.\n\nfunction attemptToDispatchEvent(domEventName, eventSystemFlags, targetContainer, nativeEvent) {\n // TODO: Warn if _enabled is false.\n var nativeEventTarget = getEventTarget(nativeEvent);\n var targetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (targetInst !== null) {\n var nearestMounted = getNearestMountedFiber(targetInst);\n\n if (nearestMounted === null) {\n // This tree has been unmounted already. Dispatch without a target.\n targetInst = null;\n } else {\n var tag = nearestMounted.tag;\n\n if (tag === SuspenseComponent) {\n var instance = getSuspenseInstanceFromFiber(nearestMounted);\n\n if (instance !== null) {\n // Queue the event to be replayed later. Abort dispatching since we\n // don't want this event dispatched twice through the event system.\n // TODO: If this is the first discrete event in the queue. Schedule an increased\n // priority for this boundary.\n return instance;\n } // This shouldn't happen, something went wrong but to avoid blocking\n // the whole system, dispatch the event without a target.\n // TODO: Warn.\n\n\n targetInst = null;\n } else if (tag === HostRoot) {\n var root = nearestMounted.stateNode;\n\n if (root.hydrate) {\n // If this happens during a replay something went wrong and it might block\n // the whole system.\n return getContainerFromFiber(nearestMounted);\n }\n\n targetInst = null;\n } else if (nearestMounted !== targetInst) {\n // If we get an event (ex: img onload) before committing that\n // component's mount, ignore it for now (that is, treat it as if it was an\n // event on a non-React tree). We might also consider queueing events and\n // dispatching them after the mount.\n targetInst = null;\n }\n }\n }\n\n dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer); // We're not blocked on anything.\n\n return null;\n}\n\nfunction addEventBubbleListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, false);\n return listener;\n}\nfunction addEventCaptureListener(target, eventType, listener) {\n target.addEventListener(eventType, listener, true);\n return listener;\n}\nfunction addEventCaptureListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n capture: true,\n passive: passive\n });\n return listener;\n}\nfunction addEventBubbleListenerWithPassiveFlag(target, eventType, listener, passive) {\n target.addEventListener(eventType, listener, {\n passive: passive\n });\n return listener;\n}\n\n/**\n * These variables store information about text content of a target node,\n * allowing comparison of content before and after a given event.\n *\n * Identify the node where selection currently begins, then observe\n * both its text content and its current position in the DOM. Since the\n * browser may natively replace the target node during composition, we can\n * use its position to find its replacement.\n *\n *\n */\nvar root = null;\nvar startText = null;\nvar fallbackText = null;\nfunction initialize(nativeEventTarget) {\n root = nativeEventTarget;\n startText = getText();\n return true;\n}\nfunction reset() {\n root = null;\n startText = null;\n fallbackText = null;\n}\nfunction getData() {\n if (fallbackText) {\n return fallbackText;\n }\n\n var start;\n var startValue = startText;\n var startLength = startValue.length;\n var end;\n var endValue = getText();\n var endLength = endValue.length;\n\n for (start = 0; start < startLength; start++) {\n if (startValue[start] !== endValue[start]) {\n break;\n }\n }\n\n var minEnd = startLength - start;\n\n for (end = 1; end <= minEnd; end++) {\n if (startValue[startLength - end] !== endValue[endLength - end]) {\n break;\n }\n }\n\n var sliceTail = end > 1 ? 1 - end : undefined;\n fallbackText = endValue.slice(start, sliceTail);\n return fallbackText;\n}\nfunction getText() {\n if ('value' in root) {\n return root.value;\n }\n\n return root.textContent;\n}\n\n/**\n * `charCode` represents the actual \"character code\" and is safe to use with\n * `String.fromCharCode`. As such, only keys that correspond to printable\n * characters produce a valid `charCode`, the only exception to this is Enter.\n * The Tab-key is considered non-printable and does not have a `charCode`,\n * presumably because it does not produce a tab-character in browsers.\n *\n * @param {object} nativeEvent Native browser event.\n * @return {number} Normalized `charCode` property.\n */\nfunction getEventCharCode(nativeEvent) {\n var charCode;\n var keyCode = nativeEvent.keyCode;\n\n if ('charCode' in nativeEvent) {\n charCode = nativeEvent.charCode; // FF does not set `charCode` for the Enter-key, check against `keyCode`.\n\n if (charCode === 0 && keyCode === 13) {\n charCode = 13;\n }\n } else {\n // IE8 does not implement `charCode`, but `keyCode` has the correct value.\n charCode = keyCode;\n } // IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)\n // report Enter as charCode 10 when ctrl is pressed.\n\n\n if (charCode === 10) {\n charCode = 13;\n } // Some non-printable keys are reported in `charCode`/`keyCode`, discard them.\n // Must not discard the (non-)printable Enter-key.\n\n\n if (charCode >= 32 || charCode === 13) {\n return charCode;\n }\n\n return 0;\n}\n\nfunction functionThatReturnsTrue() {\n return true;\n}\n\nfunction functionThatReturnsFalse() {\n return false;\n} // This is intentionally a factory so that we have different returned constructors.\n// If we had a single constructor, it would be megamorphic and engines would deopt.\n\n\nfunction createSyntheticEvent(Interface) {\n /**\n * Synthetic events are dispatched by event plugins, typically in response to a\n * top-level event delegation handler.\n *\n * These systems should generally use pooling to reduce the frequency of garbage\n * collection. The system should check `isPersistent` to determine whether the\n * event should be released into the pool after being dispatched. Users that\n * need a persisted event should invoke `persist`.\n *\n * Synthetic events (and subclasses) implement the DOM Level 3 Events API by\n * normalizing browser quirks. Subclasses do not necessarily have to implement a\n * DOM interface; custom application-specific events can also subclass this.\n */\n function SyntheticBaseEvent(reactName, reactEventType, targetInst, nativeEvent, nativeEventTarget) {\n this._reactName = reactName;\n this._targetInst = targetInst;\n this.type = reactEventType;\n this.nativeEvent = nativeEvent;\n this.target = nativeEventTarget;\n this.currentTarget = null;\n\n for (var _propName in Interface) {\n if (!Interface.hasOwnProperty(_propName)) {\n continue;\n }\n\n var normalize = Interface[_propName];\n\n if (normalize) {\n this[_propName] = normalize(nativeEvent);\n } else {\n this[_propName] = nativeEvent[_propName];\n }\n }\n\n var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;\n\n if (defaultPrevented) {\n this.isDefaultPrevented = functionThatReturnsTrue;\n } else {\n this.isDefaultPrevented = functionThatReturnsFalse;\n }\n\n this.isPropagationStopped = functionThatReturnsFalse;\n return this;\n }\n\n _assign(SyntheticBaseEvent.prototype, {\n preventDefault: function () {\n this.defaultPrevented = true;\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.preventDefault) {\n event.preventDefault(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.returnValue !== 'unknown') {\n event.returnValue = false;\n }\n\n this.isDefaultPrevented = functionThatReturnsTrue;\n },\n stopPropagation: function () {\n var event = this.nativeEvent;\n\n if (!event) {\n return;\n }\n\n if (event.stopPropagation) {\n event.stopPropagation(); // $FlowFixMe - flow is not aware of `unknown` in IE\n } else if (typeof event.cancelBubble !== 'unknown') {\n // The ChangeEventPlugin registers a \"propertychange\" event for\n // IE. This event does not support bubbling or cancelling, and\n // any references to cancelBubble throw \"Member not found\". A\n // typeof check of \"unknown\" circumvents this issue (and is also\n // IE specific).\n event.cancelBubble = true;\n }\n\n this.isPropagationStopped = functionThatReturnsTrue;\n },\n\n /**\n * We release all dispatched `SyntheticEvent`s after each event loop, adding\n * them back into the pool. This allows a way to hold onto a reference that\n * won't be added back into the pool.\n */\n persist: function () {// Modern event system doesn't use pooling.\n },\n\n /**\n * Checks if this event should be released back into the pool.\n *\n * @return {boolean} True if this should not be released, false otherwise.\n */\n isPersistent: functionThatReturnsTrue\n });\n\n return SyntheticBaseEvent;\n}\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar EventInterface = {\n eventPhase: 0,\n bubbles: 0,\n cancelable: 0,\n timeStamp: function (event) {\n return event.timeStamp || Date.now();\n },\n defaultPrevented: 0,\n isTrusted: 0\n};\nvar SyntheticEvent = createSyntheticEvent(EventInterface);\n\nvar UIEventInterface = _assign({}, EventInterface, {\n view: 0,\n detail: 0\n});\n\nvar SyntheticUIEvent = createSyntheticEvent(UIEventInterface);\nvar lastMovementX;\nvar lastMovementY;\nvar lastMouseEvent;\n\nfunction updateMouseMovementPolyfillState(event) {\n if (event !== lastMouseEvent) {\n if (lastMouseEvent && event.type === 'mousemove') {\n lastMovementX = event.screenX - lastMouseEvent.screenX;\n lastMovementY = event.screenY - lastMouseEvent.screenY;\n } else {\n lastMovementX = 0;\n lastMovementY = 0;\n }\n\n lastMouseEvent = event;\n }\n}\n/**\n * @interface MouseEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar MouseEventInterface = _assign({}, UIEventInterface, {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n pageX: 0,\n pageY: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n getModifierState: getEventModifierState,\n button: 0,\n buttons: 0,\n relatedTarget: function (event) {\n if (event.relatedTarget === undefined) return event.fromElement === event.srcElement ? event.toElement : event.fromElement;\n return event.relatedTarget;\n },\n movementX: function (event) {\n if ('movementX' in event) {\n return event.movementX;\n }\n\n updateMouseMovementPolyfillState(event);\n return lastMovementX;\n },\n movementY: function (event) {\n if ('movementY' in event) {\n return event.movementY;\n } // Don't need to call updateMouseMovementPolyfillState() here\n // because it's guaranteed to have already run when movementX\n // was copied.\n\n\n return lastMovementY;\n }\n});\n\nvar SyntheticMouseEvent = createSyntheticEvent(MouseEventInterface);\n/**\n * @interface DragEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar DragEventInterface = _assign({}, MouseEventInterface, {\n dataTransfer: 0\n});\n\nvar SyntheticDragEvent = createSyntheticEvent(DragEventInterface);\n/**\n * @interface FocusEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar FocusEventInterface = _assign({}, UIEventInterface, {\n relatedTarget: 0\n});\n\nvar SyntheticFocusEvent = createSyntheticEvent(FocusEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface\n * @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent\n */\n\nvar AnimationEventInterface = _assign({}, EventInterface, {\n animationName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticAnimationEvent = createSyntheticEvent(AnimationEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/clipboard-apis/\n */\n\nvar ClipboardEventInterface = _assign({}, EventInterface, {\n clipboardData: function (event) {\n return 'clipboardData' in event ? event.clipboardData : window.clipboardData;\n }\n});\n\nvar SyntheticClipboardEvent = createSyntheticEvent(ClipboardEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents\n */\n\nvar CompositionEventInterface = _assign({}, EventInterface, {\n data: 0\n});\n\nvar SyntheticCompositionEvent = createSyntheticEvent(CompositionEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105\n * /#events-inputevents\n */\n// Happens to share the same list for now.\n\nvar SyntheticInputEvent = SyntheticCompositionEvent;\n/**\n * Normalization of deprecated HTML5 `key` values\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar normalizeKey = {\n Esc: 'Escape',\n Spacebar: ' ',\n Left: 'ArrowLeft',\n Up: 'ArrowUp',\n Right: 'ArrowRight',\n Down: 'ArrowDown',\n Del: 'Delete',\n Win: 'OS',\n Menu: 'ContextMenu',\n Apps: 'ContextMenu',\n Scroll: 'ScrollLock',\n MozPrintableKey: 'Unidentified'\n};\n/**\n * Translation from legacy `keyCode` to HTML5 `key`\n * Only special keys supported, all others depend on keyboard layout or browser\n * @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names\n */\n\nvar translateToKey = {\n '8': 'Backspace',\n '9': 'Tab',\n '12': 'Clear',\n '13': 'Enter',\n '16': 'Shift',\n '17': 'Control',\n '18': 'Alt',\n '19': 'Pause',\n '20': 'CapsLock',\n '27': 'Escape',\n '32': ' ',\n '33': 'PageUp',\n '34': 'PageDown',\n '35': 'End',\n '36': 'Home',\n '37': 'ArrowLeft',\n '38': 'ArrowUp',\n '39': 'ArrowRight',\n '40': 'ArrowDown',\n '45': 'Insert',\n '46': 'Delete',\n '112': 'F1',\n '113': 'F2',\n '114': 'F3',\n '115': 'F4',\n '116': 'F5',\n '117': 'F6',\n '118': 'F7',\n '119': 'F8',\n '120': 'F9',\n '121': 'F10',\n '122': 'F11',\n '123': 'F12',\n '144': 'NumLock',\n '145': 'ScrollLock',\n '224': 'Meta'\n};\n/**\n * @param {object} nativeEvent Native browser event.\n * @return {string} Normalized `key` property.\n */\n\nfunction getEventKey(nativeEvent) {\n if (nativeEvent.key) {\n // Normalize inconsistent values reported by browsers due to\n // implementations of a working draft specification.\n // FireFox implements `key` but returns `MozPrintableKey` for all\n // printable characters (normalized to `Unidentified`), ignore it.\n var key = normalizeKey[nativeEvent.key] || nativeEvent.key;\n\n if (key !== 'Unidentified') {\n return key;\n }\n } // Browser does not implement `key`, polyfill as much of it as we can.\n\n\n if (nativeEvent.type === 'keypress') {\n var charCode = getEventCharCode(nativeEvent); // The enter-key is technically both printable and non-printable and can\n // thus be captured by `keypress`, no other non-printable key should.\n\n return charCode === 13 ? 'Enter' : String.fromCharCode(charCode);\n }\n\n if (nativeEvent.type === 'keydown' || nativeEvent.type === 'keyup') {\n // While user keyboard layout determines the actual meaning of each\n // `keyCode` value, almost all function keys have a universal value.\n return translateToKey[nativeEvent.keyCode] || 'Unidentified';\n }\n\n return '';\n}\n/**\n * Translation from modifier key to the associated property in the event.\n * @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers\n */\n\n\nvar modifierKeyToProp = {\n Alt: 'altKey',\n Control: 'ctrlKey',\n Meta: 'metaKey',\n Shift: 'shiftKey'\n}; // Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support\n// getModifierState. If getModifierState is not supported, we map it to a set of\n// modifier keys exposed by the event. In this case, Lock-keys are not supported.\n\nfunction modifierStateGetter(keyArg) {\n var syntheticEvent = this;\n var nativeEvent = syntheticEvent.nativeEvent;\n\n if (nativeEvent.getModifierState) {\n return nativeEvent.getModifierState(keyArg);\n }\n\n var keyProp = modifierKeyToProp[keyArg];\n return keyProp ? !!nativeEvent[keyProp] : false;\n}\n\nfunction getEventModifierState(nativeEvent) {\n return modifierStateGetter;\n}\n/**\n * @interface KeyboardEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\n\nvar KeyboardEventInterface = _assign({}, UIEventInterface, {\n key: getEventKey,\n code: 0,\n location: 0,\n ctrlKey: 0,\n shiftKey: 0,\n altKey: 0,\n metaKey: 0,\n repeat: 0,\n locale: 0,\n getModifierState: getEventModifierState,\n // Legacy Interface\n charCode: function (event) {\n // `charCode` is the result of a KeyPress event and represents the value of\n // the actual printable character.\n // KeyPress is deprecated, but its replacement is not yet final and not\n // implemented in any major browser. Only KeyPress has charCode.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n return 0;\n },\n keyCode: function (event) {\n // `keyCode` is the result of a KeyDown/Up event and represents the value of\n // physical keyboard key.\n // The actual meaning of the value depends on the users' keyboard layout\n // which cannot be detected. Assuming that it is a US keyboard layout\n // provides a surprisingly accurate mapping for US and European users.\n // Due to this, it is left to the user to implement at this time.\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n },\n which: function (event) {\n // `which` is an alias for either `keyCode` or `charCode` depending on the\n // type of the event.\n if (event.type === 'keypress') {\n return getEventCharCode(event);\n }\n\n if (event.type === 'keydown' || event.type === 'keyup') {\n return event.keyCode;\n }\n\n return 0;\n }\n});\n\nvar SyntheticKeyboardEvent = createSyntheticEvent(KeyboardEventInterface);\n/**\n * @interface PointerEvent\n * @see http://www.w3.org/TR/pointerevents/\n */\n\nvar PointerEventInterface = _assign({}, MouseEventInterface, {\n pointerId: 0,\n width: 0,\n height: 0,\n pressure: 0,\n tangentialPressure: 0,\n tiltX: 0,\n tiltY: 0,\n twist: 0,\n pointerType: 0,\n isPrimary: 0\n});\n\nvar SyntheticPointerEvent = createSyntheticEvent(PointerEventInterface);\n/**\n * @interface TouchEvent\n * @see http://www.w3.org/TR/touch-events/\n */\n\nvar TouchEventInterface = _assign({}, UIEventInterface, {\n touches: 0,\n targetTouches: 0,\n changedTouches: 0,\n altKey: 0,\n metaKey: 0,\n ctrlKey: 0,\n shiftKey: 0,\n getModifierState: getEventModifierState\n});\n\nvar SyntheticTouchEvent = createSyntheticEvent(TouchEventInterface);\n/**\n * @interface Event\n * @see http://www.w3.org/TR/2009/WD-css3-transitions-20090320/#transition-events-\n * @see https://developer.mozilla.org/en-US/docs/Web/API/TransitionEvent\n */\n\nvar TransitionEventInterface = _assign({}, EventInterface, {\n propertyName: 0,\n elapsedTime: 0,\n pseudoElement: 0\n});\n\nvar SyntheticTransitionEvent = createSyntheticEvent(TransitionEventInterface);\n/**\n * @interface WheelEvent\n * @see http://www.w3.org/TR/DOM-Level-3-Events/\n */\n\nvar WheelEventInterface = _assign({}, MouseEventInterface, {\n deltaX: function (event) {\n return 'deltaX' in event ? event.deltaX : // Fallback to `wheelDeltaX` for Webkit and normalize (right is positive).\n 'wheelDeltaX' in event ? -event.wheelDeltaX : 0;\n },\n deltaY: function (event) {\n return 'deltaY' in event ? event.deltaY : // Fallback to `wheelDeltaY` for Webkit and normalize (down is positive).\n 'wheelDeltaY' in event ? -event.wheelDeltaY : // Fallback to `wheelDelta` for IE<9 and normalize (down is positive).\n 'wheelDelta' in event ? -event.wheelDelta : 0;\n },\n deltaZ: 0,\n // Browsers without \"deltaMode\" is reporting in raw wheel delta where one\n // notch on the scroll is always +/- 120, roughly equivalent to pixels.\n // A good approximation of DOM_DELTA_LINE (1) is 5% of viewport size or\n // ~40 pixels, for DOM_DELTA_SCREEN (2) it is 87.5% of viewport size.\n deltaMode: 0\n});\n\nvar SyntheticWheelEvent = createSyntheticEvent(WheelEventInterface);\n\nvar END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space\n\nvar START_KEYCODE = 229;\nvar canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;\nvar documentMode = null;\n\nif (canUseDOM && 'documentMode' in document) {\n documentMode = document.documentMode;\n} // Webkit offers a very useful `textInput` event that can be used to\n// directly represent `beforeInput`. The IE `textinput` event is not as\n// useful, so we don't use it.\n\n\nvar canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode; // In IE9+, we have access to composition events, but the data supplied\n// by the native compositionend event may be incorrect. Japanese ideographic\n// spaces, for instance (\\u3000) are not recorded correctly.\n\nvar useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);\nvar SPACEBAR_CODE = 32;\nvar SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);\n\nfunction registerEvents() {\n registerTwoPhaseEvent('onBeforeInput', ['compositionend', 'keypress', 'textInput', 'paste']);\n registerTwoPhaseEvent('onCompositionEnd', ['compositionend', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionStart', ['compositionstart', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n registerTwoPhaseEvent('onCompositionUpdate', ['compositionupdate', 'focusout', 'keydown', 'keypress', 'keyup', 'mousedown']);\n} // Track whether we've ever handled a keypress on the space key.\n\n\nvar hasSpaceKeypress = false;\n/**\n * Return whether a native keypress event is assumed to be a command.\n * This is required because Firefox fires `keypress` events for key commands\n * (cut, copy, select-all, etc.) even though no character is inserted.\n */\n\nfunction isKeypressCommand(nativeEvent) {\n return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) && // ctrlKey && altKey is equivalent to AltGr, and is not a command.\n !(nativeEvent.ctrlKey && nativeEvent.altKey);\n}\n/**\n * Translate native top level events into event types.\n */\n\n\nfunction getCompositionEventType(domEventName) {\n switch (domEventName) {\n case 'compositionstart':\n return 'onCompositionStart';\n\n case 'compositionend':\n return 'onCompositionEnd';\n\n case 'compositionupdate':\n return 'onCompositionUpdate';\n }\n}\n/**\n * Does our fallback best-guess model think this event signifies that\n * composition has begun?\n */\n\n\nfunction isFallbackCompositionStart(domEventName, nativeEvent) {\n return domEventName === 'keydown' && nativeEvent.keyCode === START_KEYCODE;\n}\n/**\n * Does our fallback mode think that this event is the end of composition?\n */\n\n\nfunction isFallbackCompositionEnd(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'keyup':\n // Command keys insert or clear IME input.\n return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;\n\n case 'keydown':\n // Expect IME keyCode on each keydown. If we get any other\n // code we must have exited earlier.\n return nativeEvent.keyCode !== START_KEYCODE;\n\n case 'keypress':\n case 'mousedown':\n case 'focusout':\n // Events are not possible without cancelling IME.\n return true;\n\n default:\n return false;\n }\n}\n/**\n * Google Input Tools provides composition data via a CustomEvent,\n * with the `data` property populated in the `detail` object. If this\n * is available on the event object, use it. If not, this is a plain\n * composition event and we have nothing special to extract.\n *\n * @param {object} nativeEvent\n * @return {?string}\n */\n\n\nfunction getDataFromCustomEvent(nativeEvent) {\n var detail = nativeEvent.detail;\n\n if (typeof detail === 'object' && 'data' in detail) {\n return detail.data;\n }\n\n return null;\n}\n/**\n * Check if a composition event was triggered by Korean IME.\n * Our fallback mode does not work well with IE's Korean IME,\n * so just use native composition events when Korean IME is used.\n * Although CompositionEvent.locale property is deprecated,\n * it is available in IE, where our fallback mode is enabled.\n *\n * @param {object} nativeEvent\n * @return {boolean}\n */\n\n\nfunction isUsingKoreanIME(nativeEvent) {\n return nativeEvent.locale === 'ko';\n} // Track the current IME composition status, if any.\n\n\nvar isComposing = false;\n/**\n * @return {?object} A SyntheticCompositionEvent.\n */\n\nfunction extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var eventType;\n var fallbackData;\n\n if (canUseCompositionEvent) {\n eventType = getCompositionEventType(domEventName);\n } else if (!isComposing) {\n if (isFallbackCompositionStart(domEventName, nativeEvent)) {\n eventType = 'onCompositionStart';\n }\n } else if (isFallbackCompositionEnd(domEventName, nativeEvent)) {\n eventType = 'onCompositionEnd';\n }\n\n if (!eventType) {\n return null;\n }\n\n if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {\n // The current composition is stored statically and must not be\n // overwritten while composition continues.\n if (!isComposing && eventType === 'onCompositionStart') {\n isComposing = initialize(nativeEventTarget);\n } else if (eventType === 'onCompositionEnd') {\n if (isComposing) {\n fallbackData = getData();\n }\n }\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, eventType);\n\n if (listeners.length > 0) {\n var event = new SyntheticCompositionEvent(eventType, domEventName, null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n\n if (fallbackData) {\n // Inject data generated from fallback path into the synthetic event.\n // This matches the property of native CompositionEventInterface.\n event.data = fallbackData;\n } else {\n var customData = getDataFromCustomEvent(nativeEvent);\n\n if (customData !== null) {\n event.data = customData;\n }\n }\n }\n}\n\nfunction getNativeBeforeInputChars(domEventName, nativeEvent) {\n switch (domEventName) {\n case 'compositionend':\n return getDataFromCustomEvent(nativeEvent);\n\n case 'keypress':\n /**\n * If native `textInput` events are available, our goal is to make\n * use of them. However, there is a special case: the spacebar key.\n * In Webkit, preventing default on a spacebar `textInput` event\n * cancels character insertion, but it *also* causes the browser\n * to fall back to its default spacebar behavior of scrolling the\n * page.\n *\n * Tracking at:\n * https://code.google.com/p/chromium/issues/detail?id=355103\n *\n * To avoid this issue, use the keypress event as if no `textInput`\n * event is available.\n */\n var which = nativeEvent.which;\n\n if (which !== SPACEBAR_CODE) {\n return null;\n }\n\n hasSpaceKeypress = true;\n return SPACEBAR_CHAR;\n\n case 'textInput':\n // Record the characters to be added to the DOM.\n var chars = nativeEvent.data; // If it's a spacebar character, assume that we have already handled\n // it at the keypress level and bail immediately. Android Chrome\n // doesn't give us keycodes, so we need to ignore it.\n\n if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {\n return null;\n }\n\n return chars;\n\n default:\n // For other native event types, do nothing.\n return null;\n }\n}\n/**\n * For browsers that do not provide the `textInput` event, extract the\n * appropriate string to use for SyntheticInputEvent.\n */\n\n\nfunction getFallbackBeforeInputChars(domEventName, nativeEvent) {\n // If we are currently composing (IME) and using a fallback to do so,\n // try to extract the composed characters from the fallback object.\n // If composition event is available, we extract a string only at\n // compositionevent, otherwise extract it at fallback events.\n if (isComposing) {\n if (domEventName === 'compositionend' || !canUseCompositionEvent && isFallbackCompositionEnd(domEventName, nativeEvent)) {\n var chars = getData();\n reset();\n isComposing = false;\n return chars;\n }\n\n return null;\n }\n\n switch (domEventName) {\n case 'paste':\n // If a paste event occurs after a keypress, throw out the input\n // chars. Paste events should not lead to BeforeInput events.\n return null;\n\n case 'keypress':\n /**\n * As of v27, Firefox may fire keypress events even when no character\n * will be inserted. A few possibilities:\n *\n * - `which` is `0`. Arrow keys, Esc key, etc.\n *\n * - `which` is the pressed key code, but no char is available.\n * Ex: 'AltGr + d` in Polish. There is no modified character for\n * this key combination and no character is inserted into the\n * document, but FF fires the keypress for char code `100` anyway.\n * No `input` event will occur.\n *\n * - `which` is the pressed key code, but a command combination is\n * being used. Ex: `Cmd+C`. No character is inserted, and no\n * `input` event will occur.\n */\n if (!isKeypressCommand(nativeEvent)) {\n // IE fires the `keypress` event when a user types an emoji via\n // Touch keyboard of Windows. In such a case, the `char` property\n // holds an emoji character like `\\uD83D\\uDE0A`. Because its length\n // is 2, the property `which` does not represent an emoji correctly.\n // In such a case, we directly return the `char` property instead of\n // using `which`.\n if (nativeEvent.char && nativeEvent.char.length > 1) {\n return nativeEvent.char;\n } else if (nativeEvent.which) {\n return String.fromCharCode(nativeEvent.which);\n }\n }\n\n return null;\n\n case 'compositionend':\n return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;\n\n default:\n return null;\n }\n}\n/**\n * Extract a SyntheticInputEvent for `beforeInput`, based on either native\n * `textInput` or fallback behavior.\n *\n * @return {?object} A SyntheticInputEvent.\n */\n\n\nfunction extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget) {\n var chars;\n\n if (canUseTextInputEvent) {\n chars = getNativeBeforeInputChars(domEventName, nativeEvent);\n } else {\n chars = getFallbackBeforeInputChars(domEventName, nativeEvent);\n } // If no characters are being inserted, no BeforeInput event should\n // be fired.\n\n\n if (!chars) {\n return null;\n }\n\n var listeners = accumulateTwoPhaseListeners(targetInst, 'onBeforeInput');\n\n if (listeners.length > 0) {\n var event = new SyntheticInputEvent('onBeforeInput', 'beforeinput', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.data = chars;\n }\n}\n/**\n * Create an `onBeforeInput` event to match\n * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.\n *\n * This event plugin is based on the native `textInput` event\n * available in Chrome, Safari, Opera, and IE. This event fires after\n * `onKeyPress` and `onCompositionEnd`, but before `onInput`.\n *\n * `beforeInput` is spec'd but not implemented in any browsers, and\n * the `input` event does not provide any useful information about what has\n * actually been added, contrary to the spec. Thus, `textInput` is the best\n * available event to identify the characters that have actually been inserted\n * into the target node.\n *\n * This plugin is also responsible for emitting `composition` events, thus\n * allowing us to share composition fallback code for both `beforeInput` and\n * `composition` event types.\n */\n\n\nfunction extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n extractCompositionEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractBeforeInputEvent(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n}\n\n/**\n * @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary\n */\nvar supportedInputTypes = {\n color: true,\n date: true,\n datetime: true,\n 'datetime-local': true,\n email: true,\n month: true,\n number: true,\n password: true,\n range: true,\n search: true,\n tel: true,\n text: true,\n time: true,\n url: true,\n week: true\n};\n\nfunction isTextInputElement(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n\n if (nodeName === 'input') {\n return !!supportedInputTypes[elem.type];\n }\n\n if (nodeName === 'textarea') {\n return true;\n }\n\n return false;\n}\n\n/**\n * Checks if an event is supported in the current execution environment.\n *\n * NOTE: This will not work correctly for non-generic events such as `change`,\n * `reset`, `load`, `error`, and `select`.\n *\n * Borrows from Modernizr.\n *\n * @param {string} eventNameSuffix Event name, e.g. \"click\".\n * @return {boolean} True if the event is supported.\n * @internal\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\n\nfunction isEventSupported(eventNameSuffix) {\n if (!canUseDOM) {\n return false;\n }\n\n var eventName = 'on' + eventNameSuffix;\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n return isSupported;\n}\n\nfunction registerEvents$1() {\n registerTwoPhaseEvent('onChange', ['change', 'click', 'focusin', 'focusout', 'input', 'keydown', 'keyup', 'selectionchange']);\n}\n\nfunction createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, target) {\n // Flag this event loop as needing state restore.\n enqueueStateRestore(target);\n var listeners = accumulateTwoPhaseListeners(inst, 'onChange');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onChange', 'change', null, nativeEvent, target);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n}\n/**\n * For IE shims\n */\n\n\nvar activeElement = null;\nvar activeElementInst = null;\n/**\n * SECTION: handle `change` event\n */\n\nfunction shouldUseChangeEvent(elem) {\n var nodeName = elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';\n}\n\nfunction manualDispatchChangeEvent(nativeEvent) {\n var dispatchQueue = [];\n createAndAccumulateChangeEvent(dispatchQueue, activeElementInst, nativeEvent, getEventTarget(nativeEvent)); // If change and propertychange bubbled, we'd just bind to it like all the\n // other events and have it go through ReactBrowserEventEmitter. Since it\n // doesn't, we manually listen for the events and so we have to enqueue and\n // process the abstract event manually.\n //\n // Batching is necessary here in order to ensure that all event handlers run\n // before the next rerender (including event handlers attached to ancestor\n // elements instead of directly on the input). Without this, controlled\n // components don't work properly in conjunction with event bubbling because\n // the component is rerendered and the value reverted before all the event\n // handlers can run. See https://github.com/facebook/react/issues/708.\n\n batchedUpdates(runEventInBatch, dispatchQueue);\n}\n\nfunction runEventInBatch(dispatchQueue) {\n processDispatchQueue(dispatchQueue, 0);\n}\n\nfunction getInstIfValueChanged(targetInst) {\n var targetNode = getNodeFromInstance(targetInst);\n\n if (updateValueIfChanged(targetNode)) {\n return targetInst;\n }\n}\n\nfunction getTargetInstForChangeEvent(domEventName, targetInst) {\n if (domEventName === 'change') {\n return targetInst;\n }\n}\n/**\n * SECTION: handle `input` event\n */\n\n\nvar isInputEventSupported = false;\n\nif (canUseDOM) {\n // IE9 claims to support the input event but fails to trigger it when\n // deleting text, so we ignore its input events.\n isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);\n}\n/**\n * (For IE <=9) Starts tracking propertychange events on the passed-in element\n * and override the value property so that we can distinguish user events from\n * value changes in JS.\n */\n\n\nfunction startWatchingForValueChange(target, targetInst) {\n activeElement = target;\n activeElementInst = targetInst;\n activeElement.attachEvent('onpropertychange', handlePropertyChange);\n}\n/**\n * (For IE <=9) Removes the event listeners from the currently-tracked element,\n * if any exists.\n */\n\n\nfunction stopWatchingForValueChange() {\n if (!activeElement) {\n return;\n }\n\n activeElement.detachEvent('onpropertychange', handlePropertyChange);\n activeElement = null;\n activeElementInst = null;\n}\n/**\n * (For IE <=9) Handles a propertychange event, sending a `change` event if\n * the value of the active element has changed.\n */\n\n\nfunction handlePropertyChange(nativeEvent) {\n if (nativeEvent.propertyName !== 'value') {\n return;\n }\n\n if (getInstIfValueChanged(activeElementInst)) {\n manualDispatchChangeEvent(nativeEvent);\n }\n}\n\nfunction handleEventsForInputEventPolyfill(domEventName, target, targetInst) {\n if (domEventName === 'focusin') {\n // In IE9, propertychange fires for most input events but is buggy and\n // doesn't fire when text is deleted, but conveniently, selectionchange\n // appears to fire in all of the remaining cases so we catch those and\n // forward the event if the value has changed\n // In either case, we don't want to call the event handler if the value\n // is changed from JS so we redefine a setter for `.value` that updates\n // our activeElementValue variable, allowing us to ignore those changes\n //\n // stopWatching() should be a noop here but we call it just in case we\n // missed a blur event somehow.\n stopWatchingForValueChange();\n startWatchingForValueChange(target, targetInst);\n } else if (domEventName === 'focusout') {\n stopWatchingForValueChange();\n }\n} // For IE8 and IE9.\n\n\nfunction getTargetInstForInputEventPolyfill(domEventName, targetInst) {\n if (domEventName === 'selectionchange' || domEventName === 'keyup' || domEventName === 'keydown') {\n // On the selectionchange event, the target is just document which isn't\n // helpful for us so just check activeElement instead.\n //\n // 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire\n // propertychange on the first input event after setting `value` from a\n // script and fires only keydown, keypress, keyup. Catching keyup usually\n // gets it and catching keydown lets us fire an event for the first\n // keystroke if user does a key repeat (it'll be a little delayed: right\n // before the second keystroke). Other input methods (e.g., paste) seem to\n // fire selectionchange normally.\n return getInstIfValueChanged(activeElementInst);\n }\n}\n/**\n * SECTION: handle `click` event\n */\n\n\nfunction shouldUseClickEvent(elem) {\n // Use the `click` event to detect changes to checkbox and radio inputs.\n // This approach works across all browsers, whereas `change` does not fire\n // until `blur` in IE8.\n var nodeName = elem.nodeName;\n return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');\n}\n\nfunction getTargetInstForClickEvent(domEventName, targetInst) {\n if (domEventName === 'click') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction getTargetInstForInputOrChangeEvent(domEventName, targetInst) {\n if (domEventName === 'input' || domEventName === 'change') {\n return getInstIfValueChanged(targetInst);\n }\n}\n\nfunction handleControlledInputBlur(node) {\n var state = node._wrapperState;\n\n if (!state || !state.controlled || node.type !== 'number') {\n return;\n }\n\n {\n // If controlled, assign the value attribute to the current value on blur\n setDefaultValue(node, 'number', node.value);\n }\n}\n/**\n * This plugin creates an `onChange` event that normalizes change events\n * across form elements. This event fires at a time when it's possible to\n * change the element's value without seeing a flicker.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - select\n */\n\n\nfunction extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n var getTargetInstFunc, handleEventFunc;\n\n if (shouldUseChangeEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForChangeEvent;\n } else if (isTextInputElement(targetNode)) {\n if (isInputEventSupported) {\n getTargetInstFunc = getTargetInstForInputOrChangeEvent;\n } else {\n getTargetInstFunc = getTargetInstForInputEventPolyfill;\n handleEventFunc = handleEventsForInputEventPolyfill;\n }\n } else if (shouldUseClickEvent(targetNode)) {\n getTargetInstFunc = getTargetInstForClickEvent;\n }\n\n if (getTargetInstFunc) {\n var inst = getTargetInstFunc(domEventName, targetInst);\n\n if (inst) {\n createAndAccumulateChangeEvent(dispatchQueue, inst, nativeEvent, nativeEventTarget);\n return;\n }\n }\n\n if (handleEventFunc) {\n handleEventFunc(domEventName, targetNode, targetInst);\n } // When blurring, set the value attribute for number inputs\n\n\n if (domEventName === 'focusout') {\n handleControlledInputBlur(targetNode);\n }\n}\n\nfunction registerEvents$2() {\n registerDirectEvent('onMouseEnter', ['mouseout', 'mouseover']);\n registerDirectEvent('onMouseLeave', ['mouseout', 'mouseover']);\n registerDirectEvent('onPointerEnter', ['pointerout', 'pointerover']);\n registerDirectEvent('onPointerLeave', ['pointerout', 'pointerover']);\n}\n/**\n * For almost every interaction we care about, there will be both a top-level\n * `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that\n * we do not extract duplicate events. However, moving the mouse into the\n * browser from outside will not fire a `mouseout` event. In this case, we use\n * the `mouseover` top-level event.\n */\n\n\nfunction extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var isOverEvent = domEventName === 'mouseover' || domEventName === 'pointerover';\n var isOutEvent = domEventName === 'mouseout' || domEventName === 'pointerout';\n\n if (isOverEvent && (eventSystemFlags & IS_REPLAYED) === 0) {\n // If this is an over event with a target, we might have already dispatched\n // the event in the out event of the other target. If this is replayed,\n // then it's because we couldn't dispatch against this target previously\n // so we have to do it now instead.\n var related = nativeEvent.relatedTarget || nativeEvent.fromElement;\n\n if (related) {\n // If the related node is managed by React, we can assume that we have\n // already dispatched the corresponding events during its mouseout.\n if (getClosestInstanceFromNode(related) || isContainerMarkedAsRoot(related)) {\n return;\n }\n }\n }\n\n if (!isOutEvent && !isOverEvent) {\n // Must not be a mouse or pointer in or out - ignoring.\n return;\n }\n\n var win; // TODO: why is this nullable in the types but we read from it?\n\n if (nativeEventTarget.window === nativeEventTarget) {\n // `nativeEventTarget` is probably a window object.\n win = nativeEventTarget;\n } else {\n // TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.\n var doc = nativeEventTarget.ownerDocument;\n\n if (doc) {\n win = doc.defaultView || doc.parentWindow;\n } else {\n win = window;\n }\n }\n\n var from;\n var to;\n\n if (isOutEvent) {\n var _related = nativeEvent.relatedTarget || nativeEvent.toElement;\n\n from = targetInst;\n to = _related ? getClosestInstanceFromNode(_related) : null;\n\n if (to !== null) {\n var nearestMounted = getNearestMountedFiber(to);\n\n if (to !== nearestMounted || to.tag !== HostComponent && to.tag !== HostText) {\n to = null;\n }\n }\n } else {\n // Moving to a node from outside the window.\n from = null;\n to = targetInst;\n }\n\n if (from === to) {\n // Nothing pertains to our managed components.\n return;\n }\n\n var SyntheticEventCtor = SyntheticMouseEvent;\n var leaveEventType = 'onMouseLeave';\n var enterEventType = 'onMouseEnter';\n var eventTypePrefix = 'mouse';\n\n if (domEventName === 'pointerout' || domEventName === 'pointerover') {\n SyntheticEventCtor = SyntheticPointerEvent;\n leaveEventType = 'onPointerLeave';\n enterEventType = 'onPointerEnter';\n eventTypePrefix = 'pointer';\n }\n\n var fromNode = from == null ? win : getNodeFromInstance(from);\n var toNode = to == null ? win : getNodeFromInstance(to);\n var leave = new SyntheticEventCtor(leaveEventType, eventTypePrefix + 'leave', from, nativeEvent, nativeEventTarget);\n leave.target = fromNode;\n leave.relatedTarget = toNode;\n var enter = null; // We should only process this nativeEvent if we are processing\n // the first ancestor. Next time, we will ignore the event.\n\n var nativeTargetInst = getClosestInstanceFromNode(nativeEventTarget);\n\n if (nativeTargetInst === targetInst) {\n var enterEvent = new SyntheticEventCtor(enterEventType, eventTypePrefix + 'enter', to, nativeEvent, nativeEventTarget);\n enterEvent.target = toNode;\n enterEvent.relatedTarget = fromNode;\n enter = enterEvent;\n }\n\n accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leave, enter, from, to);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n */\n\nfunction shallowEqual(objA, objB) {\n if (objectIs(objA, objB)) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n } // Test for A's keys different from B.\n\n\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwnProperty$2.call(objB, keysA[i]) || !objectIs(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Given any node return the first leaf node without children.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {DOMElement|DOMTextNode}\n */\n\nfunction getLeafNode(node) {\n while (node && node.firstChild) {\n node = node.firstChild;\n }\n\n return node;\n}\n/**\n * Get the next sibling within a container. This will walk up the\n * DOM if a node's siblings have been exhausted.\n *\n * @param {DOMElement|DOMTextNode} node\n * @return {?DOMElement|DOMTextNode}\n */\n\n\nfunction getSiblingNode(node) {\n while (node) {\n if (node.nextSibling) {\n return node.nextSibling;\n }\n\n node = node.parentNode;\n }\n}\n/**\n * Get object describing the nodes which contain characters at offset.\n *\n * @param {DOMElement|DOMTextNode} root\n * @param {number} offset\n * @return {?object}\n */\n\n\nfunction getNodeForCharacterOffset(root, offset) {\n var node = getLeafNode(root);\n var nodeStart = 0;\n var nodeEnd = 0;\n\n while (node) {\n if (node.nodeType === TEXT_NODE) {\n nodeEnd = nodeStart + node.textContent.length;\n\n if (nodeStart <= offset && nodeEnd >= offset) {\n return {\n node: node,\n offset: offset - nodeStart\n };\n }\n\n nodeStart = nodeEnd;\n }\n\n node = getLeafNode(getSiblingNode(node));\n }\n}\n\n/**\n * @param {DOMElement} outerNode\n * @return {?object}\n */\n\nfunction getOffsets(outerNode) {\n var ownerDocument = outerNode.ownerDocument;\n var win = ownerDocument && ownerDocument.defaultView || window;\n var selection = win.getSelection && win.getSelection();\n\n if (!selection || selection.rangeCount === 0) {\n return null;\n }\n\n var anchorNode = selection.anchorNode,\n anchorOffset = selection.anchorOffset,\n focusNode = selection.focusNode,\n focusOffset = selection.focusOffset; // In Firefox, anchorNode and focusNode can be \"anonymous divs\", e.g. the\n // up/down buttons on an <input type=\"number\">. Anonymous divs do not seem to\n // expose properties, triggering a \"Permission denied error\" if any of its\n // properties are accessed. The only seemingly possible way to avoid erroring\n // is to access a property that typically works for non-anonymous divs and\n // catch any error that may otherwise arise. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=208427\n\n try {\n /* eslint-disable no-unused-expressions */\n anchorNode.nodeType;\n focusNode.nodeType;\n /* eslint-enable no-unused-expressions */\n } catch (e) {\n return null;\n }\n\n return getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset);\n}\n/**\n * Returns {start, end} where `start` is the character/codepoint index of\n * (anchorNode, anchorOffset) within the textContent of `outerNode`, and\n * `end` is the index of (focusNode, focusOffset).\n *\n * Returns null if you pass in garbage input but we should probably just crash.\n *\n * Exported only for testing.\n */\n\nfunction getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset, focusNode, focusOffset) {\n var length = 0;\n var start = -1;\n var end = -1;\n var indexWithinAnchor = 0;\n var indexWithinFocus = 0;\n var node = outerNode;\n var parentNode = null;\n\n outer: while (true) {\n var next = null;\n\n while (true) {\n if (node === anchorNode && (anchorOffset === 0 || node.nodeType === TEXT_NODE)) {\n start = length + anchorOffset;\n }\n\n if (node === focusNode && (focusOffset === 0 || node.nodeType === TEXT_NODE)) {\n end = length + focusOffset;\n }\n\n if (node.nodeType === TEXT_NODE) {\n length += node.nodeValue.length;\n }\n\n if ((next = node.firstChild) === null) {\n break;\n } // Moving from `node` to its first child `next`.\n\n\n parentNode = node;\n node = next;\n }\n\n while (true) {\n if (node === outerNode) {\n // If `outerNode` has children, this is always the second time visiting\n // it. If it has no children, this is still the first loop, and the only\n // valid selection is anchorNode and focusNode both equal to this node\n // and both offsets 0, in which case we will have handled above.\n break outer;\n }\n\n if (parentNode === anchorNode && ++indexWithinAnchor === anchorOffset) {\n start = length;\n }\n\n if (parentNode === focusNode && ++indexWithinFocus === focusOffset) {\n end = length;\n }\n\n if ((next = node.nextSibling) !== null) {\n break;\n }\n\n node = parentNode;\n parentNode = node.parentNode;\n } // Moving from `node` to its next sibling `next`.\n\n\n node = next;\n }\n\n if (start === -1 || end === -1) {\n // This should never happen. (Would happen if the anchor/focus nodes aren't\n // actually inside the passed-in node.)\n return null;\n }\n\n return {\n start: start,\n end: end\n };\n}\n/**\n * In modern non-IE browsers, we can support both forward and backward\n * selections.\n *\n * Note: IE10+ supports the Selection object, but it does not support\n * the `extend` method, which means that even in modern IE, it's not possible\n * to programmatically create a backward selection. Thus, for all IE\n * versions, we use the old IE API to create our selections.\n *\n * @param {DOMElement|DOMTextNode} node\n * @param {object} offsets\n */\n\nfunction setOffsets(node, offsets) {\n var doc = node.ownerDocument || document;\n var win = doc && doc.defaultView || window; // Edge fails with \"Object expected\" in some scenarios.\n // (For instance: TinyMCE editor used in a list component that supports pasting to add more,\n // fails when pasting 100+ items)\n\n if (!win.getSelection) {\n return;\n }\n\n var selection = win.getSelection();\n var length = node.textContent.length;\n var start = Math.min(offsets.start, length);\n var end = offsets.end === undefined ? start : Math.min(offsets.end, length); // IE 11 uses modern selection, but doesn't support the extend method.\n // Flip backward selections, so we can set with a single range.\n\n if (!selection.extend && start > end) {\n var temp = end;\n end = start;\n start = temp;\n }\n\n var startMarker = getNodeForCharacterOffset(node, start);\n var endMarker = getNodeForCharacterOffset(node, end);\n\n if (startMarker && endMarker) {\n if (selection.rangeCount === 1 && selection.anchorNode === startMarker.node && selection.anchorOffset === startMarker.offset && selection.focusNode === endMarker.node && selection.focusOffset === endMarker.offset) {\n return;\n }\n\n var range = doc.createRange();\n range.setStart(startMarker.node, startMarker.offset);\n selection.removeAllRanges();\n\n if (start > end) {\n selection.addRange(range);\n selection.extend(endMarker.node, endMarker.offset);\n } else {\n range.setEnd(endMarker.node, endMarker.offset);\n selection.addRange(range);\n }\n }\n}\n\nfunction isTextNode(node) {\n return node && node.nodeType === TEXT_NODE;\n}\n\nfunction containsNode(outerNode, innerNode) {\n if (!outerNode || !innerNode) {\n return false;\n } else if (outerNode === innerNode) {\n return true;\n } else if (isTextNode(outerNode)) {\n return false;\n } else if (isTextNode(innerNode)) {\n return containsNode(outerNode, innerNode.parentNode);\n } else if ('contains' in outerNode) {\n return outerNode.contains(innerNode);\n } else if (outerNode.compareDocumentPosition) {\n return !!(outerNode.compareDocumentPosition(innerNode) & 16);\n } else {\n return false;\n }\n}\n\nfunction isInDocument(node) {\n return node && node.ownerDocument && containsNode(node.ownerDocument.documentElement, node);\n}\n\nfunction isSameOriginFrame(iframe) {\n try {\n // Accessing the contentDocument of a HTMLIframeElement can cause the browser\n // to throw, e.g. if it has a cross-origin src attribute.\n // Safari will show an error in the console when the access results in \"Blocked a frame with origin\". e.g:\n // iframe.contentDocument.defaultView;\n // A safety way is to access one of the cross origin properties: Window or Location\n // Which might result in \"SecurityError\" DOM Exception and it is compatible to Safari.\n // https://html.spec.whatwg.org/multipage/browsers.html#integration-with-idl\n return typeof iframe.contentWindow.location.href === 'string';\n } catch (err) {\n return false;\n }\n}\n\nfunction getActiveElementDeep() {\n var win = window;\n var element = getActiveElement();\n\n while (element instanceof win.HTMLIFrameElement) {\n if (isSameOriginFrame(element)) {\n win = element.contentWindow;\n } else {\n return element;\n }\n\n element = getActiveElement(win.document);\n }\n\n return element;\n}\n/**\n * @ReactInputSelection: React input selection module. Based on Selection.js,\n * but modified to be suitable for react and has a couple of bug fixes (doesn't\n * assume buttons have range selections allowed).\n * Input selection module for React.\n */\n\n/**\n * @hasSelectionCapabilities: we get the element types that support selection\n * from https://html.spec.whatwg.org/#do-not-apply, looking at `selectionStart`\n * and `selectionEnd` rows.\n */\n\n\nfunction hasSelectionCapabilities(elem) {\n var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();\n return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');\n}\nfunction getSelectionInformation() {\n var focusedElem = getActiveElementDeep();\n return {\n focusedElem: focusedElem,\n selectionRange: hasSelectionCapabilities(focusedElem) ? getSelection(focusedElem) : null\n };\n}\n/**\n * @restoreSelection: If any selection information was potentially lost,\n * restore it. This is useful when performing operations that could remove dom\n * nodes and place them back in, resulting in focus being lost.\n */\n\nfunction restoreSelection(priorSelectionInformation) {\n var curFocusedElem = getActiveElementDeep();\n var priorFocusedElem = priorSelectionInformation.focusedElem;\n var priorSelectionRange = priorSelectionInformation.selectionRange;\n\n if (curFocusedElem !== priorFocusedElem && isInDocument(priorFocusedElem)) {\n if (priorSelectionRange !== null && hasSelectionCapabilities(priorFocusedElem)) {\n setSelection(priorFocusedElem, priorSelectionRange);\n } // Focusing a node can change the scroll position, which is undesirable\n\n\n var ancestors = [];\n var ancestor = priorFocusedElem;\n\n while (ancestor = ancestor.parentNode) {\n if (ancestor.nodeType === ELEMENT_NODE) {\n ancestors.push({\n element: ancestor,\n left: ancestor.scrollLeft,\n top: ancestor.scrollTop\n });\n }\n }\n\n if (typeof priorFocusedElem.focus === 'function') {\n priorFocusedElem.focus();\n }\n\n for (var i = 0; i < ancestors.length; i++) {\n var info = ancestors[i];\n info.element.scrollLeft = info.left;\n info.element.scrollTop = info.top;\n }\n }\n}\n/**\n * @getSelection: Gets the selection bounds of a focused textarea, input or\n * contentEditable node.\n * -@input: Look up selection bounds of this input\n * -@return {start: selectionStart, end: selectionEnd}\n */\n\nfunction getSelection(input) {\n var selection;\n\n if ('selectionStart' in input) {\n // Modern browser with input or textarea.\n selection = {\n start: input.selectionStart,\n end: input.selectionEnd\n };\n } else {\n // Content editable or old IE textarea.\n selection = getOffsets(input);\n }\n\n return selection || {\n start: 0,\n end: 0\n };\n}\n/**\n * @setSelection: Sets the selection bounds of a textarea or input and focuses\n * the input.\n * -@input Set selection bounds of this input or textarea\n * -@offsets Object of same form that is returned from get*\n */\n\nfunction setSelection(input, offsets) {\n var start = offsets.start;\n var end = offsets.end;\n\n if (end === undefined) {\n end = start;\n }\n\n if ('selectionStart' in input) {\n input.selectionStart = start;\n input.selectionEnd = Math.min(end, input.value.length);\n } else {\n setOffsets(input, offsets);\n }\n}\n\nvar skipSelectionChangeEvent = canUseDOM && 'documentMode' in document && document.documentMode <= 11;\n\nfunction registerEvents$3() {\n registerTwoPhaseEvent('onSelect', ['focusout', 'contextmenu', 'dragend', 'focusin', 'keydown', 'keyup', 'mousedown', 'mouseup', 'selectionchange']);\n}\n\nvar activeElement$1 = null;\nvar activeElementInst$1 = null;\nvar lastSelection = null;\nvar mouseDown = false;\n/**\n * Get an object which is a unique representation of the current selection.\n *\n * The return value will not be consistent across nodes or browsers, but\n * two identical selections on the same node will return identical objects.\n */\n\nfunction getSelection$1(node) {\n if ('selectionStart' in node && hasSelectionCapabilities(node)) {\n return {\n start: node.selectionStart,\n end: node.selectionEnd\n };\n } else {\n var win = node.ownerDocument && node.ownerDocument.defaultView || window;\n var selection = win.getSelection();\n return {\n anchorNode: selection.anchorNode,\n anchorOffset: selection.anchorOffset,\n focusNode: selection.focusNode,\n focusOffset: selection.focusOffset\n };\n }\n}\n/**\n * Get document associated with the event target.\n */\n\n\nfunction getEventTargetDocument(eventTarget) {\n return eventTarget.window === eventTarget ? eventTarget.document : eventTarget.nodeType === DOCUMENT_NODE ? eventTarget : eventTarget.ownerDocument;\n}\n/**\n * Poll selection to see whether it's changed.\n *\n * @param {object} nativeEvent\n * @param {object} nativeEventTarget\n * @return {?SyntheticEvent}\n */\n\n\nfunction constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget) {\n // Ensure we have the right element, and that the user is not dragging a\n // selection (this matches native `select` event behavior). In HTML5, select\n // fires only on input and textarea thus if there's no focused element we\n // won't dispatch.\n var doc = getEventTargetDocument(nativeEventTarget);\n\n if (mouseDown || activeElement$1 == null || activeElement$1 !== getActiveElement(doc)) {\n return;\n } // Only fire when selection has actually changed.\n\n\n var currentSelection = getSelection$1(activeElement$1);\n\n if (!lastSelection || !shallowEqual(lastSelection, currentSelection)) {\n lastSelection = currentSelection;\n var listeners = accumulateTwoPhaseListeners(activeElementInst$1, 'onSelect');\n\n if (listeners.length > 0) {\n var event = new SyntheticEvent('onSelect', 'select', null, nativeEvent, nativeEventTarget);\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n event.target = activeElement$1;\n }\n }\n}\n/**\n * This plugin creates an `onSelect` event that normalizes select events\n * across form elements.\n *\n * Supported elements are:\n * - input (see `isTextInputElement`)\n * - textarea\n * - contentEditable\n *\n * This differs from native browser implementations in the following ways:\n * - Fires on contentEditable fields as well as inputs.\n * - Fires for collapsed selection.\n * - Fires after user input.\n */\n\n\nfunction extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n\n var targetNode = targetInst ? getNodeFromInstance(targetInst) : window;\n\n switch (domEventName) {\n // Track the input node that has focus.\n case 'focusin':\n if (isTextInputElement(targetNode) || targetNode.contentEditable === 'true') {\n activeElement$1 = targetNode;\n activeElementInst$1 = targetInst;\n lastSelection = null;\n }\n\n break;\n\n case 'focusout':\n activeElement$1 = null;\n activeElementInst$1 = null;\n lastSelection = null;\n break;\n // Don't fire the event while the user is dragging. This matches the\n // semantics of the native select event.\n\n case 'mousedown':\n mouseDown = true;\n break;\n\n case 'contextmenu':\n case 'mouseup':\n case 'dragend':\n mouseDown = false;\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n break;\n // Chrome and IE fire non-standard event when selection is changed (and\n // sometimes when it hasn't). IE's event fires out of order with respect\n // to key and input events on deletion, so we discard it.\n //\n // Firefox doesn't support selectionchange, so check selection status\n // after each key entry. The selection changes after keydown and before\n // keyup, but we check on keydown as well in the case of holding down a\n // key, when multiple keydown events are fired but only one keyup is.\n // This is also our approach for IE handling, for the reason above.\n\n case 'selectionchange':\n if (skipSelectionChangeEvent) {\n break;\n }\n\n // falls through\n\n case 'keydown':\n case 'keyup':\n constructSelectEvent(dispatchQueue, nativeEvent, nativeEventTarget);\n }\n}\n\nfunction extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n var reactName = topLevelEventsToReactNames.get(domEventName);\n\n if (reactName === undefined) {\n return;\n }\n\n var SyntheticEventCtor = SyntheticEvent;\n var reactEventType = domEventName;\n\n switch (domEventName) {\n case 'keypress':\n // Firefox creates a keypress event for function keys too. This removes\n // the unwanted keypress events. Enter is however both printable and\n // non-printable. One would expect Tab to be as well (but it isn't).\n if (getEventCharCode(nativeEvent) === 0) {\n return;\n }\n\n /* falls through */\n\n case 'keydown':\n case 'keyup':\n SyntheticEventCtor = SyntheticKeyboardEvent;\n break;\n\n case 'focusin':\n reactEventType = 'focus';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'focusout':\n reactEventType = 'blur';\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'beforeblur':\n case 'afterblur':\n SyntheticEventCtor = SyntheticFocusEvent;\n break;\n\n case 'click':\n // Firefox creates a click event on right mouse clicks. This removes the\n // unwanted click events.\n if (nativeEvent.button === 2) {\n return;\n }\n\n /* falls through */\n\n case 'auxclick':\n case 'dblclick':\n case 'mousedown':\n case 'mousemove':\n case 'mouseup': // TODO: Disabled elements should not respond to mouse events\n\n /* falls through */\n\n case 'mouseout':\n case 'mouseover':\n case 'contextmenu':\n SyntheticEventCtor = SyntheticMouseEvent;\n break;\n\n case 'drag':\n case 'dragend':\n case 'dragenter':\n case 'dragexit':\n case 'dragleave':\n case 'dragover':\n case 'dragstart':\n case 'drop':\n SyntheticEventCtor = SyntheticDragEvent;\n break;\n\n case 'touchcancel':\n case 'touchend':\n case 'touchmove':\n case 'touchstart':\n SyntheticEventCtor = SyntheticTouchEvent;\n break;\n\n case ANIMATION_END:\n case ANIMATION_ITERATION:\n case ANIMATION_START:\n SyntheticEventCtor = SyntheticAnimationEvent;\n break;\n\n case TRANSITION_END:\n SyntheticEventCtor = SyntheticTransitionEvent;\n break;\n\n case 'scroll':\n SyntheticEventCtor = SyntheticUIEvent;\n break;\n\n case 'wheel':\n SyntheticEventCtor = SyntheticWheelEvent;\n break;\n\n case 'copy':\n case 'cut':\n case 'paste':\n SyntheticEventCtor = SyntheticClipboardEvent;\n break;\n\n case 'gotpointercapture':\n case 'lostpointercapture':\n case 'pointercancel':\n case 'pointerdown':\n case 'pointermove':\n case 'pointerout':\n case 'pointerover':\n case 'pointerup':\n SyntheticEventCtor = SyntheticPointerEvent;\n break;\n }\n\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n {\n // Some events don't bubble in the browser.\n // In the past, React has always bubbled them, but this can be surprising.\n // We're going to try aligning closer to the browser behavior by not bubbling\n // them in React either. We'll start by not bubbling onScroll, and then expand.\n var accumulateTargetOnly = !inCapturePhase && // TODO: ideally, we'd eventually add all events from\n // nonDelegatedEvents list in DOMPluginEventSystem.\n // Then we can remove this special list.\n // This is a breaking change that can wait until React 18.\n domEventName === 'scroll';\n\n var _listeners = accumulateSinglePhaseListeners(targetInst, reactName, nativeEvent.type, inCapturePhase, accumulateTargetOnly);\n\n if (_listeners.length > 0) {\n // Intentionally create event lazily.\n var _event = new SyntheticEventCtor(reactName, reactEventType, null, nativeEvent, nativeEventTarget);\n\n dispatchQueue.push({\n event: _event,\n listeners: _listeners\n });\n }\n }\n}\n\n// TODO: remove top-level side effect.\nregisterSimpleEvents();\nregisterEvents$2();\nregisterEvents$1();\nregisterEvents$3();\nregisterEvents();\n\nfunction extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags, targetContainer) {\n // TODO: we should remove the concept of a \"SimpleEventPlugin\".\n // This is the basic functionality of the event system. All\n // the other plugins are essentially polyfills. So the plugin\n // should probably be inlined somewhere and have its logic\n // be core the to event system. This would potentially allow\n // us to ship builds of React without the polyfilled plugins below.\n extractEvents$4(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n var shouldProcessPolyfillPlugins = (eventSystemFlags & SHOULD_NOT_PROCESS_POLYFILL_EVENT_PLUGINS) === 0; // We don't process these events unless we are in the\n // event's native \"bubble\" phase, which means that we're\n // not in the capture phase. That's because we emulate\n // the capture phase here still. This is a trade-off,\n // because in an ideal world we would not emulate and use\n // the phases properly, like we do with the SimpleEvent\n // plugin. However, the plugins below either expect\n // emulation (EnterLeave) or use state localized to that\n // plugin (BeforeInput, Change, Select). The state in\n // these modules complicates things, as you'll essentially\n // get the case where the capture phase event might change\n // state, only for the following bubble event to come in\n // later and not trigger anything as the state now\n // invalidates the heuristics of the event plugin. We\n // could alter all these plugins to work in such ways, but\n // that might cause other unknown side-effects that we\n // can't forsee right now.\n\n if (shouldProcessPolyfillPlugins) {\n extractEvents$2(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n extractEvents$1(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents$3(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n extractEvents(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget);\n }\n} // List of events that need to be individually attached to media elements.\n\n\nvar mediaEventTypes = ['abort', 'canplay', 'canplaythrough', 'durationchange', 'emptied', 'encrypted', 'ended', 'error', 'loadeddata', 'loadedmetadata', 'loadstart', 'pause', 'play', 'playing', 'progress', 'ratechange', 'seeked', 'seeking', 'stalled', 'suspend', 'timeupdate', 'volumechange', 'waiting']; // We should not delegate these events to the container, but rather\n// set them on the actual target element itself. This is primarily\n// because these events do not consistently bubble in the DOM.\n\nvar nonDelegatedEvents = new Set(['cancel', 'close', 'invalid', 'load', 'scroll', 'toggle'].concat(mediaEventTypes));\n\nfunction executeDispatch(event, listener, currentTarget) {\n var type = event.type || 'unknown-event';\n event.currentTarget = currentTarget;\n invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);\n event.currentTarget = null;\n}\n\nfunction processDispatchQueueItemsInOrder(event, dispatchListeners, inCapturePhase) {\n var previousInstance;\n\n if (inCapturePhase) {\n for (var i = dispatchListeners.length - 1; i >= 0; i--) {\n var _dispatchListeners$i = dispatchListeners[i],\n instance = _dispatchListeners$i.instance,\n currentTarget = _dispatchListeners$i.currentTarget,\n listener = _dispatchListeners$i.listener;\n\n if (instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, listener, currentTarget);\n previousInstance = instance;\n }\n } else {\n for (var _i = 0; _i < dispatchListeners.length; _i++) {\n var _dispatchListeners$_i = dispatchListeners[_i],\n _instance = _dispatchListeners$_i.instance,\n _currentTarget = _dispatchListeners$_i.currentTarget,\n _listener = _dispatchListeners$_i.listener;\n\n if (_instance !== previousInstance && event.isPropagationStopped()) {\n return;\n }\n\n executeDispatch(event, _listener, _currentTarget);\n previousInstance = _instance;\n }\n }\n}\n\nfunction processDispatchQueue(dispatchQueue, eventSystemFlags) {\n var inCapturePhase = (eventSystemFlags & IS_CAPTURE_PHASE) !== 0;\n\n for (var i = 0; i < dispatchQueue.length; i++) {\n var _dispatchQueue$i = dispatchQueue[i],\n event = _dispatchQueue$i.event,\n listeners = _dispatchQueue$i.listeners;\n processDispatchQueueItemsInOrder(event, listeners, inCapturePhase); // event system doesn't use pooling.\n } // This would be a good time to rethrow if any of the event handlers threw.\n\n\n rethrowCaughtError();\n}\n\nfunction dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var nativeEventTarget = getEventTarget(nativeEvent);\n var dispatchQueue = [];\n extractEvents$5(dispatchQueue, domEventName, targetInst, nativeEvent, nativeEventTarget, eventSystemFlags);\n processDispatchQueue(dispatchQueue, eventSystemFlags);\n}\n\nfunction listenToNonDelegatedEvent(domEventName, targetElement) {\n var isCapturePhaseListener = false;\n var listenerSet = getEventListenerSet(targetElement);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener);\n\n if (!listenerSet.has(listenerSetKey)) {\n addTrappedEventListener(targetElement, domEventName, IS_NON_DELEGATED, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\nvar listeningMarker = '_reactListening' + Math.random().toString(36).slice(2);\nfunction listenToAllSupportedEvents(rootContainerElement) {\n {\n if (rootContainerElement[listeningMarker]) {\n // Performance optimization: don't iterate through events\n // for the same portal container or root node more than once.\n // TODO: once we remove the flag, we may be able to also\n // remove some of the bookkeeping maps used for laziness.\n return;\n }\n\n rootContainerElement[listeningMarker] = true;\n allNativeEvents.forEach(function (domEventName) {\n if (!nonDelegatedEvents.has(domEventName)) {\n listenToNativeEvent(domEventName, false, rootContainerElement, null);\n }\n\n listenToNativeEvent(domEventName, true, rootContainerElement, null);\n });\n }\n}\nfunction listenToNativeEvent(domEventName, isCapturePhaseListener, rootContainerElement, targetElement) {\n var eventSystemFlags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n var target = rootContainerElement; // selectionchange needs to be attached to the document\n // otherwise it won't capture incoming events that are only\n // triggered on the document directly.\n\n if (domEventName === 'selectionchange' && rootContainerElement.nodeType !== DOCUMENT_NODE) {\n target = rootContainerElement.ownerDocument;\n } // If the event can be delegated (or is capture phase), we can\n // register it to the root container. Otherwise, we should\n // register the event to the target element and mark it as\n // a non-delegated event.\n\n\n if (targetElement !== null && !isCapturePhaseListener && nonDelegatedEvents.has(domEventName)) {\n // For all non-delegated events, apart from scroll, we attach\n // their event listeners to the respective elements that their\n // events fire on. That means we can skip this step, as event\n // listener has already been added previously. However, we\n // special case the scroll event because the reality is that any\n // element can scroll.\n // TODO: ideally, we'd eventually apply the same logic to all\n // events from the nonDelegatedEvents list. Then we can remove\n // this special case and use the same logic for all events.\n if (domEventName !== 'scroll') {\n return;\n }\n\n eventSystemFlags |= IS_NON_DELEGATED;\n target = targetElement;\n }\n\n var listenerSet = getEventListenerSet(target);\n var listenerSetKey = getListenerSetKey(domEventName, isCapturePhaseListener); // If the listener entry is empty or we should upgrade, then\n // we need to trap an event listener onto the target.\n\n if (!listenerSet.has(listenerSetKey)) {\n if (isCapturePhaseListener) {\n eventSystemFlags |= IS_CAPTURE_PHASE;\n }\n\n addTrappedEventListener(target, domEventName, eventSystemFlags, isCapturePhaseListener);\n listenerSet.add(listenerSetKey);\n }\n}\n\nfunction addTrappedEventListener(targetContainer, domEventName, eventSystemFlags, isCapturePhaseListener, isDeferredListenerForLegacyFBSupport) {\n var listener = createEventListenerWrapperWithPriority(targetContainer, domEventName, eventSystemFlags); // If passive option is not supported, then the event will be\n // active and not passive.\n\n var isPassiveListener = undefined;\n\n if (passiveBrowserEventsSupported) {\n // Browsers introduced an intervention, making these events\n // passive by default on document. React doesn't bind them\n // to document anymore, but changing this now would undo\n // the performance wins from the change. So we emulate\n // the existing behavior manually on the roots now.\n // https://github.com/facebook/react/issues/19651\n if (domEventName === 'touchstart' || domEventName === 'touchmove' || domEventName === 'wheel') {\n isPassiveListener = true;\n }\n }\n\n targetContainer = targetContainer;\n var unsubscribeListener; // When legacyFBSupport is enabled, it's for when we\n\n\n if (isCapturePhaseListener) {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventCaptureListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventCaptureListener(targetContainer, domEventName, listener);\n }\n } else {\n if (isPassiveListener !== undefined) {\n unsubscribeListener = addEventBubbleListenerWithPassiveFlag(targetContainer, domEventName, listener, isPassiveListener);\n } else {\n unsubscribeListener = addEventBubbleListener(targetContainer, domEventName, listener);\n }\n }\n}\n\nfunction isMatchingRootContainer(grandContainer, targetContainer) {\n return grandContainer === targetContainer || grandContainer.nodeType === COMMENT_NODE && grandContainer.parentNode === targetContainer;\n}\n\nfunction dispatchEventForPluginEventSystem(domEventName, eventSystemFlags, nativeEvent, targetInst, targetContainer) {\n var ancestorInst = targetInst;\n\n if ((eventSystemFlags & IS_EVENT_HANDLE_NON_MANAGED_NODE) === 0 && (eventSystemFlags & IS_NON_DELEGATED) === 0) {\n var targetContainerNode = targetContainer; // If we are using the legacy FB support flag, we\n\n if (targetInst !== null) {\n // The below logic attempts to work out if we need to change\n // the target fiber to a different ancestor. We had similar logic\n // in the legacy event system, except the big difference between\n // systems is that the modern event system now has an event listener\n // attached to each React Root and React Portal Root. Together,\n // the DOM nodes representing these roots are the \"rootContainer\".\n // To figure out which ancestor instance we should use, we traverse\n // up the fiber tree from the target instance and attempt to find\n // root boundaries that match that of our current \"rootContainer\".\n // If we find that \"rootContainer\", we find the parent fiber\n // sub-tree for that root and make that our ancestor instance.\n var node = targetInst;\n\n mainLoop: while (true) {\n if (node === null) {\n return;\n }\n\n var nodeTag = node.tag;\n\n if (nodeTag === HostRoot || nodeTag === HostPortal) {\n var container = node.stateNode.containerInfo;\n\n if (isMatchingRootContainer(container, targetContainerNode)) {\n break;\n }\n\n if (nodeTag === HostPortal) {\n // The target is a portal, but it's not the rootContainer we're looking for.\n // Normally portals handle their own events all the way down to the root.\n // So we should be able to stop now. However, we don't know if this portal\n // was part of *our* root.\n var grandNode = node.return;\n\n while (grandNode !== null) {\n var grandTag = grandNode.tag;\n\n if (grandTag === HostRoot || grandTag === HostPortal) {\n var grandContainer = grandNode.stateNode.containerInfo;\n\n if (isMatchingRootContainer(grandContainer, targetContainerNode)) {\n // This is the rootContainer we're looking for and we found it as\n // a parent of the Portal. That means we can ignore it because the\n // Portal will bubble through to us.\n return;\n }\n }\n\n grandNode = grandNode.return;\n }\n } // Now we need to find it's corresponding host fiber in the other\n // tree. To do this we can use getClosestInstanceFromNode, but we\n // need to validate that the fiber is a host instance, otherwise\n // we need to traverse up through the DOM till we find the correct\n // node that is from the other tree.\n\n\n while (container !== null) {\n var parentNode = getClosestInstanceFromNode(container);\n\n if (parentNode === null) {\n return;\n }\n\n var parentTag = parentNode.tag;\n\n if (parentTag === HostComponent || parentTag === HostText) {\n node = ancestorInst = parentNode;\n continue mainLoop;\n }\n\n container = container.parentNode;\n }\n }\n\n node = node.return;\n }\n }\n }\n\n batchedEventUpdates(function () {\n return dispatchEventsForPlugins(domEventName, eventSystemFlags, nativeEvent, ancestorInst);\n });\n}\n\nfunction createDispatchListener(instance, listener, currentTarget) {\n return {\n instance: instance,\n listener: listener,\n currentTarget: currentTarget\n };\n}\n\nfunction accumulateSinglePhaseListeners(targetFiber, reactName, nativeEventType, inCapturePhase, accumulateTargetOnly) {\n var captureName = reactName !== null ? reactName + 'Capture' : null;\n var reactEventName = inCapturePhase ? captureName : reactName;\n var listeners = [];\n var instance = targetFiber;\n var lastHostComponent = null; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance2 = instance,\n stateNode = _instance2.stateNode,\n tag = _instance2.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n lastHostComponent = stateNode; // createEventHandle listeners\n\n\n if (reactEventName !== null) {\n var listener = getListener(instance, reactEventName);\n\n if (listener != null) {\n listeners.push(createDispatchListener(instance, listener, lastHostComponent));\n }\n }\n } // If we are only accumulating events for the target, then we don't\n // continue to propagate through the React fiber tree to find other\n // listeners.\n\n\n if (accumulateTargetOnly) {\n break;\n }\n\n instance = instance.return;\n }\n\n return listeners;\n} // We should only use this function for:\n// - BeforeInputEventPlugin\n// - ChangeEventPlugin\n// - SelectEventPlugin\n// This is because we only process these plugins\n// in the bubble phase, so we need to accumulate two\n// phase event listeners (via emulation).\n\nfunction accumulateTwoPhaseListeners(targetFiber, reactName) {\n var captureName = reactName + 'Capture';\n var listeners = [];\n var instance = targetFiber; // Accumulate all instances and listeners via the target -> root path.\n\n while (instance !== null) {\n var _instance3 = instance,\n stateNode = _instance3.stateNode,\n tag = _instance3.tag; // Handle listeners that are on HostComponents (i.e. <div>)\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n var captureListener = getListener(instance, captureName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n\n var bubbleListener = getListener(instance, reactName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n\n instance = instance.return;\n }\n\n return listeners;\n}\n\nfunction getParent(inst) {\n if (inst === null) {\n return null;\n }\n\n do {\n inst = inst.return; // TODO: If this is a HostRoot we might want to bail out.\n // That is depending on if we want nested subtrees (layers) to bubble\n // events to their parent. We could also go through parentNode on the\n // host node but that wouldn't work for React Native and doesn't let us\n // do the portal feature.\n } while (inst && inst.tag !== HostComponent);\n\n if (inst) {\n return inst;\n }\n\n return null;\n}\n/**\n * Return the lowest common ancestor of A and B, or null if they are in\n * different trees.\n */\n\n\nfunction getLowestCommonAncestor(instA, instB) {\n var nodeA = instA;\n var nodeB = instB;\n var depthA = 0;\n\n for (var tempA = nodeA; tempA; tempA = getParent(tempA)) {\n depthA++;\n }\n\n var depthB = 0;\n\n for (var tempB = nodeB; tempB; tempB = getParent(tempB)) {\n depthB++;\n } // If A is deeper, crawl up.\n\n\n while (depthA - depthB > 0) {\n nodeA = getParent(nodeA);\n depthA--;\n } // If B is deeper, crawl up.\n\n\n while (depthB - depthA > 0) {\n nodeB = getParent(nodeB);\n depthB--;\n } // Walk in lockstep until we find a match.\n\n\n var depth = depthA;\n\n while (depth--) {\n if (nodeA === nodeB || nodeB !== null && nodeA === nodeB.alternate) {\n return nodeA;\n }\n\n nodeA = getParent(nodeA);\n nodeB = getParent(nodeB);\n }\n\n return null;\n}\n\nfunction accumulateEnterLeaveListenersForEvent(dispatchQueue, event, target, common, inCapturePhase) {\n var registrationName = event._reactName;\n var listeners = [];\n var instance = target;\n\n while (instance !== null) {\n if (instance === common) {\n break;\n }\n\n var _instance4 = instance,\n alternate = _instance4.alternate,\n stateNode = _instance4.stateNode,\n tag = _instance4.tag;\n\n if (alternate !== null && alternate === common) {\n break;\n }\n\n if (tag === HostComponent && stateNode !== null) {\n var currentTarget = stateNode;\n\n if (inCapturePhase) {\n var captureListener = getListener(instance, registrationName);\n\n if (captureListener != null) {\n listeners.unshift(createDispatchListener(instance, captureListener, currentTarget));\n }\n } else if (!inCapturePhase) {\n var bubbleListener = getListener(instance, registrationName);\n\n if (bubbleListener != null) {\n listeners.push(createDispatchListener(instance, bubbleListener, currentTarget));\n }\n }\n }\n\n instance = instance.return;\n }\n\n if (listeners.length !== 0) {\n dispatchQueue.push({\n event: event,\n listeners: listeners\n });\n }\n} // We should only use this function for:\n// - EnterLeaveEventPlugin\n// This is because we only process this plugin\n// in the bubble phase, so we need to accumulate two\n// phase event listeners.\n\n\nfunction accumulateEnterLeaveTwoPhaseListeners(dispatchQueue, leaveEvent, enterEvent, from, to) {\n var common = from && to ? getLowestCommonAncestor(from, to) : null;\n\n if (from !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, leaveEvent, from, common, false);\n }\n\n if (to !== null && enterEvent !== null) {\n accumulateEnterLeaveListenersForEvent(dispatchQueue, enterEvent, to, common, true);\n }\n}\nfunction getListenerSetKey(domEventName, capture) {\n return domEventName + \"__\" + (capture ? 'capture' : 'bubble');\n}\n\nvar didWarnInvalidHydration = false;\nvar DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';\nvar SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';\nvar SUPPRESS_HYDRATION_WARNING = 'suppressHydrationWarning';\nvar AUTOFOCUS = 'autoFocus';\nvar CHILDREN = 'children';\nvar STYLE = 'style';\nvar HTML$1 = '__html';\nvar HTML_NAMESPACE$1 = Namespaces.html;\nvar warnedUnknownTags;\nvar suppressHydrationWarning;\nvar validatePropertiesInDevelopment;\nvar warnForTextDifference;\nvar warnForPropDifference;\nvar warnForExtraAttributes;\nvar warnForInvalidEventListener;\nvar canDiffStyleForHydrationWarning;\nvar normalizeMarkupForTextOrAttribute;\nvar normalizeHTML;\n\n{\n warnedUnknownTags = {\n // There are working polyfills for <dialog>. Let people use it.\n dialog: true,\n // Electron ships a custom <webview> tag to display external web content in\n // an isolated frame and process.\n // This tag is not present in non Electron environments such as JSDom which\n // is often used for testing purposes.\n // @see https://electronjs.org/docs/api/webview-tag\n webview: true\n };\n\n validatePropertiesInDevelopment = function (type, props) {\n validateProperties(type, props);\n validateProperties$1(type, props);\n validateProperties$2(type, props, {\n registrationNameDependencies: registrationNameDependencies,\n possibleRegistrationNames: possibleRegistrationNames\n });\n }; // IE 11 parses & normalizes the style attribute as opposed to other\n // browsers. It adds spaces and sorts the properties in some\n // non-alphabetical order. Handling that would require sorting CSS\n // properties in the client & server versions or applying\n // `expectedStyle` to a temporary DOM node to read its `style` attribute\n // normalized. Since it only affects IE, we're skipping style warnings\n // in that browser completely in favor of doing all that work.\n // See https://github.com/facebook/react/issues/11807\n\n\n canDiffStyleForHydrationWarning = canUseDOM && !document.documentMode; // HTML parsing normalizes CR and CRLF to LF.\n // It also can turn \\u0000 into \\uFFFD inside attributes.\n // https://www.w3.org/TR/html5/single-page.html#preprocessing-the-input-stream\n // If we have a mismatch, it might be caused by that.\n // We will still patch up in this case but not fire the warning.\n\n var NORMALIZE_NEWLINES_REGEX = /\\r\\n?/g;\n var NORMALIZE_NULL_AND_REPLACEMENT_REGEX = /\\u0000|\\uFFFD/g;\n\n normalizeMarkupForTextOrAttribute = function (markup) {\n var markupString = typeof markup === 'string' ? markup : '' + markup;\n return markupString.replace(NORMALIZE_NEWLINES_REGEX, '\\n').replace(NORMALIZE_NULL_AND_REPLACEMENT_REGEX, '');\n };\n\n warnForTextDifference = function (serverText, clientText) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientText = normalizeMarkupForTextOrAttribute(clientText);\n var normalizedServerText = normalizeMarkupForTextOrAttribute(serverText);\n\n if (normalizedServerText === normalizedClientText) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Text content did not match. Server: \"%s\" Client: \"%s\"', normalizedServerText, normalizedClientText);\n };\n\n warnForPropDifference = function (propName, serverValue, clientValue) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n var normalizedClientValue = normalizeMarkupForTextOrAttribute(clientValue);\n var normalizedServerValue = normalizeMarkupForTextOrAttribute(serverValue);\n\n if (normalizedServerValue === normalizedClientValue) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(normalizedServerValue), JSON.stringify(normalizedClientValue));\n };\n\n warnForExtraAttributes = function (attributeNames) {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n var names = [];\n attributeNames.forEach(function (name) {\n names.push(name);\n });\n\n error('Extra attributes from the server: %s', names);\n };\n\n warnForInvalidEventListener = function (registrationName, listener) {\n if (listener === false) {\n error('Expected `%s` listener to be a function, instead got `false`.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', registrationName, registrationName, registrationName);\n } else {\n error('Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener);\n }\n }; // Parse the HTML and read it back to normalize the HTML string so that it\n // can be used for comparison.\n\n\n normalizeHTML = function (parent, html) {\n // We could have created a separate document here to avoid\n // re-initializing custom elements if they exist. But this breaks\n // how <noscript> is being handled. So we use the same document.\n // See the discussion in https://github.com/facebook/react/pull/11157.\n var testElement = parent.namespaceURI === HTML_NAMESPACE$1 ? parent.ownerDocument.createElement(parent.tagName) : parent.ownerDocument.createElementNS(parent.namespaceURI, parent.tagName);\n testElement.innerHTML = html;\n return testElement.innerHTML;\n };\n}\n\nfunction getOwnerDocumentFromRootContainer(rootContainerElement) {\n return rootContainerElement.nodeType === DOCUMENT_NODE ? rootContainerElement : rootContainerElement.ownerDocument;\n}\n\nfunction noop() {}\n\nfunction trapClickOnNonInteractiveElement(node) {\n // Mobile Safari does not fire properly bubble click events on\n // non-interactive elements, which means delegated click listeners do not\n // fire. The workaround for this bug involves attaching an empty click\n // listener on the target node.\n // https://www.quirksmode.org/blog/archives/2010/09/click_event_del.html\n // Just set it using the onclick property so that we don't have to manage any\n // bookkeeping for it. Not sure if we need to clear it when the listener is\n // removed.\n // TODO: Only do this for the relevant Safaris maybe?\n node.onclick = noop;\n}\n\nfunction setInitialDOMProperties(tag, domElement, rootContainerElement, nextProps, isCustomComponentTag) {\n for (var propKey in nextProps) {\n if (!nextProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = nextProps[propKey];\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n } // Relies on `updateStylesByID` not mutating `styleUpdates`.\n\n\n setValueForStyles(domElement, nextProp);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n setInnerHTML(domElement, nextHtml);\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string') {\n // Avoid setting initial textContent when the text is empty. In IE11 setting\n // textContent on a <textarea> will cause the placeholder to not\n // show within the <textarea> until it has been focused and blurred again.\n // https://github.com/facebook/react/issues/6731#issuecomment-254874553\n var canSetTextContent = tag !== 'textarea' || nextProp !== '';\n\n if (canSetTextContent) {\n setTextContent(domElement, nextProp);\n }\n } else if (typeof nextProp === 'number') {\n setTextContent(domElement, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if (nextProp != null) {\n setValueForProperty(domElement, propKey, nextProp, isCustomComponentTag);\n }\n }\n}\n\nfunction updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {\n // TODO: Handle wasCustomComponentTag\n for (var i = 0; i < updatePayload.length; i += 2) {\n var propKey = updatePayload[i];\n var propValue = updatePayload[i + 1];\n\n if (propKey === STYLE) {\n setValueForStyles(domElement, propValue);\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n setInnerHTML(domElement, propValue);\n } else if (propKey === CHILDREN) {\n setTextContent(domElement, propValue);\n } else {\n setValueForProperty(domElement, propKey, propValue, isCustomComponentTag);\n }\n }\n}\n\nfunction createElement(type, props, rootContainerElement, parentNamespace) {\n var isCustomComponentTag; // We create tags in the namespace of their parent container, except HTML\n // tags get no namespace.\n\n var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);\n var domElement;\n var namespaceURI = parentNamespace;\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n namespaceURI = getIntrinsicNamespace(type);\n }\n\n if (namespaceURI === HTML_NAMESPACE$1) {\n {\n isCustomComponentTag = isCustomComponent(type, props); // Should this check be gated by parent namespace? Not sure we want to\n // allow <SVG> or <mATH>.\n\n if (!isCustomComponentTag && type !== type.toLowerCase()) {\n error('<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', type);\n }\n }\n\n if (type === 'script') {\n // Create the script via .innerHTML so its \"parser-inserted\" flag is\n // set to true and it does not execute\n var div = ownerDocument.createElement('div');\n\n div.innerHTML = '<script><' + '/script>'; // eslint-disable-line\n // This is guaranteed to yield a script element.\n\n var firstChild = div.firstChild;\n domElement = div.removeChild(firstChild);\n } else if (typeof props.is === 'string') {\n // $FlowIssue `createElement` should be updated for Web Components\n domElement = ownerDocument.createElement(type, {\n is: props.is\n });\n } else {\n // Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.\n // See discussion in https://github.com/facebook/react/pull/6896\n // and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240\n domElement = ownerDocument.createElement(type); // Normally attributes are assigned in `setInitialDOMProperties`, however the `multiple` and `size`\n // attributes on `select`s needs to be added before `option`s are inserted.\n // This prevents:\n // - a bug where the `select` does not scroll to the correct option because singular\n // `select` elements automatically pick the first item #13222\n // - a bug where the `select` set the first item as selected despite the `size` attribute #14239\n // See https://github.com/facebook/react/issues/13222\n // and https://github.com/facebook/react/issues/14239\n\n if (type === 'select') {\n var node = domElement;\n\n if (props.multiple) {\n node.multiple = true;\n } else if (props.size) {\n // Setting a size greater than 1 causes a select to behave like `multiple=true`, where\n // it is possible that no option is selected.\n //\n // This is only necessary when a select in \"single selection mode\".\n node.size = props.size;\n }\n }\n }\n } else {\n domElement = ownerDocument.createElementNS(namespaceURI, type);\n }\n\n {\n if (namespaceURI === HTML_NAMESPACE$1) {\n if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {\n warnedUnknownTags[type] = true;\n\n error('The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);\n }\n }\n }\n\n return domElement;\n}\nfunction createTextNode(text, rootContainerElement) {\n return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);\n}\nfunction setInitialProperties(domElement, tag, rawProps, rootContainerElement) {\n var isCustomComponentTag = isCustomComponent(tag, rawProps);\n\n {\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n var props;\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n props = rawProps;\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n props = rawProps;\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n props = rawProps;\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n props = rawProps;\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n props = rawProps;\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps);\n props = getHostProps(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n props = getHostProps$1(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps);\n props = getHostProps$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps);\n props = getHostProps$3(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n default:\n props = rawProps;\n }\n\n assertValidProps(tag, props);\n setInitialDOMProperties(tag, domElement, rootContainerElement, props, isCustomComponentTag);\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, false);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'option':\n postMountWrapper$1(domElement, rawProps);\n break;\n\n case 'select':\n postMountWrapper$2(domElement, rawProps);\n break;\n\n default:\n if (typeof props.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n} // Calculate the diff between the two objects.\n\nfunction diffProperties(domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {\n {\n validatePropertiesInDevelopment(tag, nextRawProps);\n }\n\n var updatePayload = null;\n var lastProps;\n var nextProps;\n\n switch (tag) {\n case 'input':\n lastProps = getHostProps(domElement, lastRawProps);\n nextProps = getHostProps(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'option':\n lastProps = getHostProps$1(domElement, lastRawProps);\n nextProps = getHostProps$1(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'select':\n lastProps = getHostProps$2(domElement, lastRawProps);\n nextProps = getHostProps$2(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n case 'textarea':\n lastProps = getHostProps$3(domElement, lastRawProps);\n nextProps = getHostProps$3(domElement, nextRawProps);\n updatePayload = [];\n break;\n\n default:\n lastProps = lastRawProps;\n nextProps = nextRawProps;\n\n if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n assertValidProps(tag, nextProps);\n var propKey;\n var styleName;\n var styleUpdates = null;\n\n for (propKey in lastProps) {\n if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n var lastStyle = lastProps[propKey];\n\n for (styleName in lastStyle) {\n if (lastStyle.hasOwnProperty(styleName)) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (propKey === AUTOFOCUS) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" fiber pointer gets updated so we need a commit\n // to update this element.\n if (!updatePayload) {\n updatePayload = [];\n }\n } else {\n // For all other deleted properties we add it to the queue. We use\n // the allowed property list in the commit phase instead.\n (updatePayload = updatePayload || []).push(propKey, null);\n }\n }\n\n for (propKey in nextProps) {\n var nextProp = nextProps[propKey];\n var lastProp = lastProps != null ? lastProps[propKey] : undefined;\n\n if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {\n continue;\n }\n\n if (propKey === STYLE) {\n {\n if (nextProp) {\n // Freeze the next style object so that we can assume it won't be\n // mutated. We have already warned for this in the past.\n Object.freeze(nextProp);\n }\n }\n\n if (lastProp) {\n // Unset styles on `lastProp` but not on `nextProp`.\n for (styleName in lastProp) {\n if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = '';\n }\n } // Update styles that changed since `lastProp`.\n\n\n for (styleName in nextProp) {\n if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {\n if (!styleUpdates) {\n styleUpdates = {};\n }\n\n styleUpdates[styleName] = nextProp[styleName];\n }\n }\n } else {\n // Relies on `updateStylesByID` not mutating `styleUpdates`.\n if (!styleUpdates) {\n if (!updatePayload) {\n updatePayload = [];\n }\n\n updatePayload.push(propKey, styleUpdates);\n }\n\n styleUpdates = nextProp;\n }\n } else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n var lastHtml = lastProp ? lastProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n if (lastHtml !== nextHtml) {\n (updatePayload = updatePayload || []).push(propKey, nextHtml);\n }\n }\n } else if (propKey === CHILDREN) {\n if (typeof nextProp === 'string' || typeof nextProp === 'number') {\n (updatePayload = updatePayload || []).push(propKey, '' + nextProp);\n }\n } else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING) ; else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n // We eagerly listen to this even though we haven't committed yet.\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n\n if (!updatePayload && lastProp !== nextProp) {\n // This is a special case. If any listener updates we need to ensure\n // that the \"current\" props pointer gets updated so we need a commit\n // to update this element.\n updatePayload = [];\n }\n } else if (typeof nextProp === 'object' && nextProp !== null && nextProp.$$typeof === REACT_OPAQUE_ID_TYPE) {\n // If we encounter useOpaqueReference's opaque object, this means we are hydrating.\n // In this case, call the opaque object's toString function which generates a new client\n // ID so client and server IDs match and throws to rerender.\n nextProp.toString();\n } else {\n // For any other property we always add it to the queue and then we\n // filter it out using the allowed property list during the commit.\n (updatePayload = updatePayload || []).push(propKey, nextProp);\n }\n }\n\n if (styleUpdates) {\n {\n validateShorthandPropertyCollisionInDev(styleUpdates, nextProps[STYLE]);\n }\n\n (updatePayload = updatePayload || []).push(STYLE, styleUpdates);\n }\n\n return updatePayload;\n} // Apply the diff.\n\nfunction updateProperties(domElement, updatePayload, tag, lastRawProps, nextRawProps) {\n // Update checked *before* name.\n // In the middle of an update, it is possible to have multiple checked.\n // When a checked radio tries to change name, browser makes another radio's checked false.\n if (tag === 'input' && nextRawProps.type === 'radio' && nextRawProps.name != null) {\n updateChecked(domElement, nextRawProps);\n }\n\n var wasCustomComponentTag = isCustomComponent(tag, lastRawProps);\n var isCustomComponentTag = isCustomComponent(tag, nextRawProps); // Apply the diff.\n\n updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag); // TODO: Ensure that an update gets scheduled if any of the special props\n // changed.\n\n switch (tag) {\n case 'input':\n // Update the wrapper around inputs *after* updating props. This has to\n // happen after `updateDOMProperties`. Otherwise HTML5 input validations\n // raise warnings and prevent the new value from being assigned.\n updateWrapper(domElement, nextRawProps);\n break;\n\n case 'textarea':\n updateWrapper$1(domElement, nextRawProps);\n break;\n\n case 'select':\n // <select> value update needs to occur after <option> children\n // reconciliation\n postUpdateWrapper(domElement, nextRawProps);\n break;\n }\n}\n\nfunction getPossibleStandardName(propName) {\n {\n var lowerCasedName = propName.toLowerCase();\n\n if (!possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n return null;\n }\n\n return possibleStandardNames[lowerCasedName] || null;\n }\n}\n\nfunction diffHydratedProperties(domElement, tag, rawProps, parentNamespace, rootContainerElement) {\n var isCustomComponentTag;\n var extraAttributeNames;\n\n {\n suppressHydrationWarning = rawProps[SUPPRESS_HYDRATION_WARNING] === true;\n isCustomComponentTag = isCustomComponent(tag, rawProps);\n validatePropertiesInDevelopment(tag, rawProps);\n } // TODO: Make sure that we check isMounted before firing any of these events.\n\n\n switch (tag) {\n case 'dialog':\n listenToNonDelegatedEvent('cancel', domElement);\n listenToNonDelegatedEvent('close', domElement);\n break;\n\n case 'iframe':\n case 'object':\n case 'embed':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the load event.\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'video':\n case 'audio':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for all the media events.\n for (var i = 0; i < mediaEventTypes.length; i++) {\n listenToNonDelegatedEvent(mediaEventTypes[i], domElement);\n }\n\n break;\n\n case 'source':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the error event.\n listenToNonDelegatedEvent('error', domElement);\n break;\n\n case 'img':\n case 'image':\n case 'link':\n // We listen to these events in case to ensure emulated bubble\n // listeners still fire for error and load events.\n listenToNonDelegatedEvent('error', domElement);\n listenToNonDelegatedEvent('load', domElement);\n break;\n\n case 'details':\n // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the toggle event.\n listenToNonDelegatedEvent('toggle', domElement);\n break;\n\n case 'input':\n initWrapperState(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'option':\n validateProps(domElement, rawProps);\n break;\n\n case 'select':\n initWrapperState$1(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n\n case 'textarea':\n initWrapperState$2(domElement, rawProps); // We listen to this event in case to ensure emulated bubble\n // listeners still fire for the invalid event.\n\n listenToNonDelegatedEvent('invalid', domElement);\n\n break;\n }\n\n assertValidProps(tag, rawProps);\n\n {\n extraAttributeNames = new Set();\n var attributes = domElement.attributes;\n\n for (var _i = 0; _i < attributes.length; _i++) {\n var name = attributes[_i].name.toLowerCase();\n\n switch (name) {\n // Built-in SSR attribute is allowed\n case 'data-reactroot':\n break;\n // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n\n case 'value':\n break;\n\n case 'checked':\n break;\n\n case 'selected':\n break;\n\n default:\n // Intentionally use the original name.\n // See discussion in https://github.com/facebook/react/pull/10676.\n extraAttributeNames.add(attributes[_i].name);\n }\n }\n }\n\n var updatePayload = null;\n\n for (var propKey in rawProps) {\n if (!rawProps.hasOwnProperty(propKey)) {\n continue;\n }\n\n var nextProp = rawProps[propKey];\n\n if (propKey === CHILDREN) {\n // For text content children we compare against textContent. This\n // might match additional HTML that is hidden when we read it using\n // textContent. E.g. \"foo\" will match \"f<span>oo</span>\" but that still\n // satisfies our requirement. Our requirement is not to produce perfect\n // HTML and attributes. Ideally we should preserve structure but it's\n // ok not to if the visible content is still enough to indicate what\n // even listeners these nodes might be wired up to.\n // TODO: Warn if there is more than a single textNode as a child.\n // TODO: Should we use domElement.firstChild.nodeValue to compare?\n if (typeof nextProp === 'string') {\n if (domElement.textContent !== nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, nextProp];\n }\n } else if (typeof nextProp === 'number') {\n if (domElement.textContent !== '' + nextProp) {\n if ( !suppressHydrationWarning) {\n warnForTextDifference(domElement.textContent, nextProp);\n }\n\n updatePayload = [CHILDREN, '' + nextProp];\n }\n }\n } else if (registrationNameDependencies.hasOwnProperty(propKey)) {\n if (nextProp != null) {\n if ( typeof nextProp !== 'function') {\n warnForInvalidEventListener(propKey, nextProp);\n }\n\n if (propKey === 'onScroll') {\n listenToNonDelegatedEvent('scroll', domElement);\n }\n }\n } else if ( // Convince Flow we've calculated it (it's DEV-only in this method.)\n typeof isCustomComponentTag === 'boolean') {\n // Validate that the properties correspond to their expected values.\n var serverValue = void 0;\n var propertyInfo = getPropertyInfo(propKey);\n\n if (suppressHydrationWarning) ; else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING || propKey === SUPPRESS_HYDRATION_WARNING || // Controlled attributes are not validated\n // TODO: Only ignore them on controlled tags.\n propKey === 'value' || propKey === 'checked' || propKey === 'selected') ; else if (propKey === DANGEROUSLY_SET_INNER_HTML) {\n var serverHTML = domElement.innerHTML;\n var nextHtml = nextProp ? nextProp[HTML$1] : undefined;\n\n if (nextHtml != null) {\n var expectedHTML = normalizeHTML(domElement, nextHtml);\n\n if (expectedHTML !== serverHTML) {\n warnForPropDifference(propKey, serverHTML, expectedHTML);\n }\n }\n } else if (propKey === STYLE) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey);\n\n if (canDiffStyleForHydrationWarning) {\n var expectedStyle = createDangerousStringForStyles(nextProp);\n serverValue = domElement.getAttribute('style');\n\n if (expectedStyle !== serverValue) {\n warnForPropDifference(propKey, serverValue, expectedStyle);\n }\n }\n } else if (isCustomComponentTag) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n\n if (nextProp !== serverValue) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n } else if (!shouldIgnoreAttribute(propKey, propertyInfo, isCustomComponentTag) && !shouldRemoveAttribute(propKey, nextProp, propertyInfo, isCustomComponentTag)) {\n var isMismatchDueToBadCasing = false;\n\n if (propertyInfo !== null) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propertyInfo.attributeName);\n serverValue = getValueForProperty(domElement, propKey, nextProp, propertyInfo);\n } else {\n var ownNamespace = parentNamespace;\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n ownNamespace = getIntrinsicNamespace(tag);\n }\n\n if (ownNamespace === HTML_NAMESPACE$1) {\n // $FlowFixMe - Should be inferred as not undefined.\n extraAttributeNames.delete(propKey.toLowerCase());\n } else {\n var standardName = getPossibleStandardName(propKey);\n\n if (standardName !== null && standardName !== propKey) {\n // If an SVG prop is supplied with bad casing, it will\n // be successfully parsed from HTML, but will produce a mismatch\n // (and would be incorrectly rendered on the client).\n // However, we already warn about bad casing elsewhere.\n // So we'll skip the misleading extra mismatch warning in this case.\n isMismatchDueToBadCasing = true; // $FlowFixMe - Should be inferred as not undefined.\n\n extraAttributeNames.delete(standardName);\n } // $FlowFixMe - Should be inferred as not undefined.\n\n\n extraAttributeNames.delete(propKey);\n }\n\n serverValue = getValueForAttribute(domElement, propKey, nextProp);\n }\n\n if (nextProp !== serverValue && !isMismatchDueToBadCasing) {\n warnForPropDifference(propKey, serverValue, nextProp);\n }\n }\n }\n }\n\n {\n // $FlowFixMe - Should be inferred as not undefined.\n if (extraAttributeNames.size > 0 && !suppressHydrationWarning) {\n // $FlowFixMe - Should be inferred as not undefined.\n warnForExtraAttributes(extraAttributeNames);\n }\n }\n\n switch (tag) {\n case 'input':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper(domElement, rawProps, true);\n break;\n\n case 'textarea':\n // TODO: Make sure we check if this is still unmounted or do any clean\n // up necessary since we never stop tracking anymore.\n track(domElement);\n postMountWrapper$3(domElement);\n break;\n\n case 'select':\n case 'option':\n // For input and textarea we current always set the value property at\n // post mount to force it to diverge from attributes. However, for\n // option and select we don't quite do the same thing and select\n // is not resilient to the DOM state changing so we don't do that here.\n // TODO: Consider not doing this for input and textarea.\n break;\n\n default:\n if (typeof rawProps.onClick === 'function') {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(domElement);\n }\n\n break;\n }\n\n return updatePayload;\n}\nfunction diffHydratedText(textNode, text) {\n var isDifferent = textNode.nodeValue !== text;\n return isDifferent;\n}\nfunction warnForUnmatchedText(textNode, text) {\n {\n warnForTextDifference(textNode.nodeValue, text);\n }\n}\nfunction warnForDeletedHydratableElement(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForDeletedHydratableText(parentNode, child) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Did not expect server HTML to contain the text node \"%s\" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedElement(parentNode, tag, props) {\n {\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());\n }\n}\nfunction warnForInsertedHydratedText(parentNode, text) {\n {\n if (text === '') {\n // We expect to insert empty text nodes since they're not represented in\n // the HTML.\n // TODO: Remove this special case if we can just avoid inserting empty\n // text nodes.\n return;\n }\n\n if (didWarnInvalidHydration) {\n return;\n }\n\n didWarnInvalidHydration = true;\n\n error('Expected server HTML to contain a matching text node for \"%s\" in <%s>.', text, parentNode.nodeName.toLowerCase());\n }\n}\nfunction restoreControlledState$3(domElement, tag, props) {\n switch (tag) {\n case 'input':\n restoreControlledState(domElement, props);\n return;\n\n case 'textarea':\n restoreControlledState$2(domElement, props);\n return;\n\n case 'select':\n restoreControlledState$1(domElement, props);\n return;\n }\n}\n\nvar validateDOMNesting = function () {};\n\nvar updatedAncestorInfo = function () {};\n\n{\n // This validation code was written based on the HTML5 parsing spec:\n // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n //\n // Note: this does not catch all invalid nesting, nor does it try to (as it's\n // not clear what practical benefit doing so provides); instead, we warn only\n // for cases where the parser will give a parse tree differing from what React\n // intended. For example, <b><div></div></b> is invalid but we don't warn\n // because it still parses correctly; we do warn for other cases like nested\n // <p> tags where the beginning of the second element implicitly closes the\n // first, causing a confusing mess.\n // https://html.spec.whatwg.org/multipage/syntax.html#special\n var specialTags = ['address', 'applet', 'area', 'article', 'aside', 'base', 'basefont', 'bgsound', 'blockquote', 'body', 'br', 'button', 'caption', 'center', 'col', 'colgroup', 'dd', 'details', 'dir', 'div', 'dl', 'dt', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'frame', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'iframe', 'img', 'input', 'isindex', 'li', 'link', 'listing', 'main', 'marquee', 'menu', 'menuitem', 'meta', 'nav', 'noembed', 'noframes', 'noscript', 'object', 'ol', 'p', 'param', 'plaintext', 'pre', 'script', 'section', 'select', 'source', 'style', 'summary', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'title', 'tr', 'track', 'ul', 'wbr', 'xmp']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-scope\n\n var inScopeTags = ['applet', 'caption', 'html', 'table', 'td', 'th', 'marquee', 'object', 'template', // https://html.spec.whatwg.org/multipage/syntax.html#html-integration-point\n // TODO: Distinguish by namespace here -- for <title>, including it here\n // errs on the side of fewer warnings\n 'foreignObject', 'desc', 'title']; // https://html.spec.whatwg.org/multipage/syntax.html#has-an-element-in-button-scope\n\n var buttonScopeTags = inScopeTags.concat(['button']); // https://html.spec.whatwg.org/multipage/syntax.html#generate-implied-end-tags\n\n var impliedEndTags = ['dd', 'dt', 'li', 'option', 'optgroup', 'p', 'rp', 'rt'];\n var emptyAncestorInfo = {\n current: null,\n formTag: null,\n aTagInScope: null,\n buttonTagInScope: null,\n nobrTagInScope: null,\n pTagInButtonScope: null,\n listItemTagAutoclosing: null,\n dlItemTagAutoclosing: null\n };\n\n updatedAncestorInfo = function (oldInfo, tag) {\n var ancestorInfo = _assign({}, oldInfo || emptyAncestorInfo);\n\n var info = {\n tag: tag\n };\n\n if (inScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.aTagInScope = null;\n ancestorInfo.buttonTagInScope = null;\n ancestorInfo.nobrTagInScope = null;\n }\n\n if (buttonScopeTags.indexOf(tag) !== -1) {\n ancestorInfo.pTagInButtonScope = null;\n } // See rules for 'li', 'dd', 'dt' start tags in\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n if (specialTags.indexOf(tag) !== -1 && tag !== 'address' && tag !== 'div' && tag !== 'p') {\n ancestorInfo.listItemTagAutoclosing = null;\n ancestorInfo.dlItemTagAutoclosing = null;\n }\n\n ancestorInfo.current = info;\n\n if (tag === 'form') {\n ancestorInfo.formTag = info;\n }\n\n if (tag === 'a') {\n ancestorInfo.aTagInScope = info;\n }\n\n if (tag === 'button') {\n ancestorInfo.buttonTagInScope = info;\n }\n\n if (tag === 'nobr') {\n ancestorInfo.nobrTagInScope = info;\n }\n\n if (tag === 'p') {\n ancestorInfo.pTagInButtonScope = info;\n }\n\n if (tag === 'li') {\n ancestorInfo.listItemTagAutoclosing = info;\n }\n\n if (tag === 'dd' || tag === 'dt') {\n ancestorInfo.dlItemTagAutoclosing = info;\n }\n\n return ancestorInfo;\n };\n /**\n * Returns whether\n */\n\n\n var isTagValidWithParent = function (tag, parentTag) {\n // First, let's check if we're in an unusual parsing mode...\n switch (parentTag) {\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inselect\n case 'select':\n return tag === 'option' || tag === 'optgroup' || tag === '#text';\n\n case 'optgroup':\n return tag === 'option' || tag === '#text';\n // Strictly speaking, seeing an <option> doesn't mean we're in a <select>\n // but\n\n case 'option':\n return tag === '#text';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intd\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incaption\n // No special behavior since these rules fall back to \"in body\" mode for\n // all except special table nodes which cause bad parsing behavior anyway.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intr\n\n case 'tr':\n return tag === 'th' || tag === 'td' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intbody\n\n case 'tbody':\n case 'thead':\n case 'tfoot':\n return tag === 'tr' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-incolgroup\n\n case 'colgroup':\n return tag === 'col' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-intable\n\n case 'table':\n return tag === 'caption' || tag === 'colgroup' || tag === 'tbody' || tag === 'tfoot' || tag === 'thead' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inhead\n\n case 'head':\n return tag === 'base' || tag === 'basefont' || tag === 'bgsound' || tag === 'link' || tag === 'meta' || tag === 'title' || tag === 'noscript' || tag === 'noframes' || tag === 'style' || tag === 'script' || tag === 'template';\n // https://html.spec.whatwg.org/multipage/semantics.html#the-html-element\n\n case 'html':\n return tag === 'head' || tag === 'body' || tag === 'frameset';\n\n case 'frameset':\n return tag === 'frame';\n\n case '#document':\n return tag === 'html';\n } // Probably in the \"in body\" parsing mode, so we outlaw only tag combos\n // where the parsing rules cause implicit opens or closes to be added.\n // https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n\n\n switch (tag) {\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return parentTag !== 'h1' && parentTag !== 'h2' && parentTag !== 'h3' && parentTag !== 'h4' && parentTag !== 'h5' && parentTag !== 'h6';\n\n case 'rp':\n case 'rt':\n return impliedEndTags.indexOf(parentTag) === -1;\n\n case 'body':\n case 'caption':\n case 'col':\n case 'colgroup':\n case 'frameset':\n case 'frame':\n case 'head':\n case 'html':\n case 'tbody':\n case 'td':\n case 'tfoot':\n case 'th':\n case 'thead':\n case 'tr':\n // These tags are only valid with a few parents that have special child\n // parsing rules -- if we're down here, then none of those matched and\n // so we allow it only if we don't know what the parent is, as all other\n // cases are invalid.\n return parentTag == null;\n }\n\n return true;\n };\n /**\n * Returns whether\n */\n\n\n var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n switch (tag) {\n case 'address':\n case 'article':\n case 'aside':\n case 'blockquote':\n case 'center':\n case 'details':\n case 'dialog':\n case 'dir':\n case 'div':\n case 'dl':\n case 'fieldset':\n case 'figcaption':\n case 'figure':\n case 'footer':\n case 'header':\n case 'hgroup':\n case 'main':\n case 'menu':\n case 'nav':\n case 'ol':\n case 'p':\n case 'section':\n case 'summary':\n case 'ul':\n case 'pre':\n case 'listing':\n case 'table':\n case 'hr':\n case 'xmp':\n case 'h1':\n case 'h2':\n case 'h3':\n case 'h4':\n case 'h5':\n case 'h6':\n return ancestorInfo.pTagInButtonScope;\n\n case 'form':\n return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n case 'li':\n return ancestorInfo.listItemTagAutoclosing;\n\n case 'dd':\n case 'dt':\n return ancestorInfo.dlItemTagAutoclosing;\n\n case 'button':\n return ancestorInfo.buttonTagInScope;\n\n case 'a':\n // Spec says something about storing a list of markers, but it sounds\n // equivalent to this check.\n return ancestorInfo.aTagInScope;\n\n case 'nobr':\n return ancestorInfo.nobrTagInScope;\n }\n\n return null;\n };\n\n var didWarn$1 = {};\n\n validateDOMNesting = function (childTag, childText, ancestorInfo) {\n ancestorInfo = ancestorInfo || emptyAncestorInfo;\n var parentInfo = ancestorInfo.current;\n var parentTag = parentInfo && parentInfo.tag;\n\n if (childText != null) {\n if (childTag != null) {\n error('validateDOMNesting: when childText is passed, childTag should be null');\n }\n\n childTag = '#text';\n }\n\n var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n var invalidParentOrAncestor = invalidParent || invalidAncestor;\n\n if (!invalidParentOrAncestor) {\n return;\n }\n\n var ancestorTag = invalidParentOrAncestor.tag;\n var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag;\n\n if (didWarn$1[warnKey]) {\n return;\n }\n\n didWarn$1[warnKey] = true;\n var tagDisplayName = childTag;\n var whitespaceInfo = '';\n\n if (childTag === '#text') {\n if (/\\S/.test(childText)) {\n tagDisplayName = 'Text nodes';\n } else {\n tagDisplayName = 'Whitespace text nodes';\n whitespaceInfo = \" Make sure you don't have any extra whitespace between tags on \" + 'each line of your source code.';\n }\n } else {\n tagDisplayName = '<' + childTag + '>';\n }\n\n if (invalidParent) {\n var info = '';\n\n if (ancestorTag === 'table' && childTag === 'tr') {\n info += ' Add a <tbody>, <thead> or <tfoot> to your code to match the DOM tree generated by ' + 'the browser.';\n }\n\n error('validateDOMNesting(...): %s cannot appear as a child of <%s>.%s%s', tagDisplayName, ancestorTag, whitespaceInfo, info);\n } else {\n error('validateDOMNesting(...): %s cannot appear as a descendant of ' + '<%s>.', tagDisplayName, ancestorTag);\n }\n };\n}\n\nvar SUPPRESS_HYDRATION_WARNING$1;\n\n{\n SUPPRESS_HYDRATION_WARNING$1 = 'suppressHydrationWarning';\n}\n\nvar SUSPENSE_START_DATA = '$';\nvar SUSPENSE_END_DATA = '/$';\nvar SUSPENSE_PENDING_START_DATA = '$?';\nvar SUSPENSE_FALLBACK_START_DATA = '$!';\nvar STYLE$1 = 'style';\nvar eventsEnabled = null;\nvar selectionInformation = null;\n\nfunction shouldAutoFocusHostComponent(type, props) {\n switch (type) {\n case 'button':\n case 'input':\n case 'select':\n case 'textarea':\n return !!props.autoFocus;\n }\n\n return false;\n}\nfunction getRootHostContext(rootContainerInstance) {\n var type;\n var namespace;\n var nodeType = rootContainerInstance.nodeType;\n\n switch (nodeType) {\n case DOCUMENT_NODE:\n case DOCUMENT_FRAGMENT_NODE:\n {\n type = nodeType === DOCUMENT_NODE ? '#document' : '#fragment';\n var root = rootContainerInstance.documentElement;\n namespace = root ? root.namespaceURI : getChildNamespace(null, '');\n break;\n }\n\n default:\n {\n var container = nodeType === COMMENT_NODE ? rootContainerInstance.parentNode : rootContainerInstance;\n var ownNamespace = container.namespaceURI || null;\n type = container.tagName;\n namespace = getChildNamespace(ownNamespace, type);\n break;\n }\n }\n\n {\n var validatedTag = type.toLowerCase();\n var ancestorInfo = updatedAncestorInfo(null, validatedTag);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getChildHostContext(parentHostContext, type, rootContainerInstance) {\n {\n var parentHostContextDev = parentHostContext;\n var namespace = getChildNamespace(parentHostContextDev.namespace, type);\n var ancestorInfo = updatedAncestorInfo(parentHostContextDev.ancestorInfo, type);\n return {\n namespace: namespace,\n ancestorInfo: ancestorInfo\n };\n }\n}\nfunction getPublicInstance(instance) {\n return instance;\n}\nfunction prepareForCommit(containerInfo) {\n eventsEnabled = isEnabled();\n selectionInformation = getSelectionInformation();\n var activeInstance = null;\n\n setEnabled(false);\n return activeInstance;\n}\nfunction resetAfterCommit(containerInfo) {\n restoreSelection(selectionInformation);\n setEnabled(eventsEnabled);\n eventsEnabled = null;\n selectionInformation = null;\n}\nfunction createInstance(type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n var parentNamespace;\n\n {\n // TODO: take namespace into account when validating.\n var hostContextDev = hostContext;\n validateDOMNesting(type, null, hostContextDev.ancestorInfo);\n\n if (typeof props.children === 'string' || typeof props.children === 'number') {\n var string = '' + props.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n\n parentNamespace = hostContextDev.namespace;\n }\n\n var domElement = createElement(type, props, rootContainerInstance, parentNamespace);\n precacheFiberNode(internalInstanceHandle, domElement);\n updateFiberProps(domElement, props);\n return domElement;\n}\nfunction appendInitialChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction finalizeInitialChildren(domElement, type, props, rootContainerInstance, hostContext) {\n setInitialProperties(domElement, type, props, rootContainerInstance);\n return shouldAutoFocusHostComponent(type, props);\n}\nfunction prepareUpdate(domElement, type, oldProps, newProps, rootContainerInstance, hostContext) {\n {\n var hostContextDev = hostContext;\n\n if (typeof newProps.children !== typeof oldProps.children && (typeof newProps.children === 'string' || typeof newProps.children === 'number')) {\n var string = '' + newProps.children;\n var ownAncestorInfo = updatedAncestorInfo(hostContextDev.ancestorInfo, type);\n validateDOMNesting(null, string, ownAncestorInfo);\n }\n }\n\n return diffProperties(domElement, type, oldProps, newProps);\n}\nfunction shouldSetTextContent(type, props) {\n return type === 'textarea' || type === 'option' || type === 'noscript' || typeof props.children === 'string' || typeof props.children === 'number' || typeof props.dangerouslySetInnerHTML === 'object' && props.dangerouslySetInnerHTML !== null && props.dangerouslySetInnerHTML.__html != null;\n}\nfunction createTextInstance(text, rootContainerInstance, hostContext, internalInstanceHandle) {\n {\n var hostContextDev = hostContext;\n validateDOMNesting(null, text, hostContextDev.ancestorInfo);\n }\n\n var textNode = createTextNode(text, rootContainerInstance);\n precacheFiberNode(internalInstanceHandle, textNode);\n return textNode;\n}\n// if a component just imports ReactDOM (e.g. for findDOMNode).\n// Some environments might not have setTimeout or clearTimeout.\n\nvar scheduleTimeout = typeof setTimeout === 'function' ? setTimeout : undefined;\nvar cancelTimeout = typeof clearTimeout === 'function' ? clearTimeout : undefined;\nvar noTimeout = -1; // -------------------\nfunction commitMount(domElement, type, newProps, internalInstanceHandle) {\n // Despite the naming that might imply otherwise, this method only\n // fires if there is an `Update` effect scheduled during mounting.\n // This happens if `finalizeInitialChildren` returns `true` (which it\n // does to implement the `autoFocus` attribute on the client). But\n // there are also other cases when this might happen (such as patching\n // up text content during hydration mismatch). So we'll check this again.\n if (shouldAutoFocusHostComponent(type, newProps)) {\n domElement.focus();\n }\n}\nfunction commitUpdate(domElement, updatePayload, type, oldProps, newProps, internalInstanceHandle) {\n // Update the props handle so that we know which props are the ones with\n // with current event handlers.\n updateFiberProps(domElement, newProps); // Apply the diff to the DOM node.\n\n updateProperties(domElement, updatePayload, type, oldProps, newProps);\n}\nfunction resetTextContent(domElement) {\n setTextContent(domElement, '');\n}\nfunction commitTextUpdate(textInstance, oldText, newText) {\n textInstance.nodeValue = newText;\n}\nfunction appendChild(parentInstance, child) {\n parentInstance.appendChild(child);\n}\nfunction appendChildToContainer(container, child) {\n var parentNode;\n\n if (container.nodeType === COMMENT_NODE) {\n parentNode = container.parentNode;\n parentNode.insertBefore(child, container);\n } else {\n parentNode = container;\n parentNode.appendChild(child);\n } // This container might be used for a portal.\n // If something inside a portal is clicked, that click should bubble\n // through the React tree. However, on Mobile Safari the click would\n // never bubble through the *DOM* tree unless an ancestor with onclick\n // event exists. So we wouldn't see it and dispatch it.\n // This is why we ensure that non React root containers have inline onclick\n // defined.\n // https://github.com/facebook/react/issues/11918\n\n\n var reactRootContainer = container._reactRootContainer;\n\n if ((reactRootContainer === null || reactRootContainer === undefined) && parentNode.onclick === null) {\n // TODO: This cast may not be sound for SVG, MathML or custom elements.\n trapClickOnNonInteractiveElement(parentNode);\n }\n}\nfunction insertBefore(parentInstance, child, beforeChild) {\n parentInstance.insertBefore(child, beforeChild);\n}\nfunction insertInContainerBefore(container, child, beforeChild) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.insertBefore(child, beforeChild);\n } else {\n container.insertBefore(child, beforeChild);\n }\n}\n\nfunction removeChild(parentInstance, child) {\n parentInstance.removeChild(child);\n}\nfunction removeChildFromContainer(container, child) {\n if (container.nodeType === COMMENT_NODE) {\n container.parentNode.removeChild(child);\n } else {\n container.removeChild(child);\n }\n}\nfunction hideInstance(instance) {\n // TODO: Does this work for all element types? What about MathML? Should we\n // pass host context to this method?\n instance = instance;\n var style = instance.style;\n\n if (typeof style.setProperty === 'function') {\n style.setProperty('display', 'none', 'important');\n } else {\n style.display = 'none';\n }\n}\nfunction hideTextInstance(textInstance) {\n textInstance.nodeValue = '';\n}\nfunction unhideInstance(instance, props) {\n instance = instance;\n var styleProp = props[STYLE$1];\n var display = styleProp !== undefined && styleProp !== null && styleProp.hasOwnProperty('display') ? styleProp.display : null;\n instance.style.display = dangerousStyleValue('display', display);\n}\nfunction unhideTextInstance(textInstance, text) {\n textInstance.nodeValue = text;\n}\nfunction clearContainer(container) {\n if (container.nodeType === ELEMENT_NODE) {\n container.textContent = '';\n } else if (container.nodeType === DOCUMENT_NODE) {\n var body = container.body;\n\n if (body != null) {\n body.textContent = '';\n }\n }\n} // -------------------\nfunction canHydrateInstance(instance, type, props) {\n if (instance.nodeType !== ELEMENT_NODE || type.toLowerCase() !== instance.nodeName.toLowerCase()) {\n return null;\n } // This has now been refined to an element node.\n\n\n return instance;\n}\nfunction canHydrateTextInstance(instance, text) {\n if (text === '' || instance.nodeType !== TEXT_NODE) {\n // Empty strings are not parsed by HTML so there won't be a correct match here.\n return null;\n } // This has now been refined to a text node.\n\n\n return instance;\n}\nfunction isSuspenseInstancePending(instance) {\n return instance.data === SUSPENSE_PENDING_START_DATA;\n}\nfunction isSuspenseInstanceFallback(instance) {\n return instance.data === SUSPENSE_FALLBACK_START_DATA;\n}\n\nfunction getNextHydratable(node) {\n // Skip non-hydratable nodes.\n for (; node != null; node = node.nextSibling) {\n var nodeType = node.nodeType;\n\n if (nodeType === ELEMENT_NODE || nodeType === TEXT_NODE) {\n break;\n }\n }\n\n return node;\n}\n\nfunction getNextHydratableSibling(instance) {\n return getNextHydratable(instance.nextSibling);\n}\nfunction getFirstHydratableChild(parentInstance) {\n return getNextHydratable(parentInstance.firstChild);\n}\nfunction hydrateInstance(instance, type, props, rootContainerInstance, hostContext, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, instance); // TODO: Possibly defer this until the commit phase where all the events\n // get attached.\n\n updateFiberProps(instance, props);\n var parentNamespace;\n\n {\n var hostContextDev = hostContext;\n parentNamespace = hostContextDev.namespace;\n }\n\n return diffHydratedProperties(instance, type, props, parentNamespace);\n}\nfunction hydrateTextInstance(textInstance, text, internalInstanceHandle) {\n precacheFiberNode(internalInstanceHandle, textInstance);\n return diffHydratedText(textInstance, text);\n}\nfunction getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {\n var node = suspenseInstance.nextSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_END_DATA) {\n if (depth === 0) {\n return getNextHydratableSibling(node);\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n depth++;\n }\n }\n\n node = node.nextSibling;\n } // TODO: Warn, we didn't find the end comment boundary.\n\n\n return null;\n} // Returns the SuspenseInstance if this node is a direct child of a\n// SuspenseInstance. I.e. if its previous sibling is a Comment with\n// SUSPENSE_x_START_DATA. Otherwise, null.\n\nfunction getParentSuspenseInstance(targetInstance) {\n var node = targetInstance.previousSibling; // Skip past all nodes within this suspense boundary.\n // There might be nested nodes so we need to keep track of how\n // deep we are and only break out when we're back on top.\n\n var depth = 0;\n\n while (node) {\n if (node.nodeType === COMMENT_NODE) {\n var data = node.data;\n\n if (data === SUSPENSE_START_DATA || data === SUSPENSE_FALLBACK_START_DATA || data === SUSPENSE_PENDING_START_DATA) {\n if (depth === 0) {\n return node;\n } else {\n depth--;\n }\n } else if (data === SUSPENSE_END_DATA) {\n depth++;\n }\n }\n\n node = node.previousSibling;\n }\n\n return null;\n}\nfunction commitHydratedContainer(container) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(container);\n}\nfunction commitHydratedSuspenseInstance(suspenseInstance) {\n // Retry if any event replaying was blocked on this.\n retryIfBlockedOn(suspenseInstance);\n}\nfunction didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, text) {\n {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForUnmatchedText(textInstance, text);\n }\n}\nfunction didNotHydrateContainerInstance(parentContainer, instance) {\n {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentContainer, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentContainer, instance);\n }\n }\n}\nfunction didNotHydrateInstance(parentType, parentProps, parentInstance, instance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n if (instance.nodeType === ELEMENT_NODE) {\n warnForDeletedHydratableElement(parentInstance, instance);\n } else if (instance.nodeType === COMMENT_NODE) ; else {\n warnForDeletedHydratableText(parentInstance, instance);\n }\n }\n}\nfunction didNotFindHydratableContainerInstance(parentContainer, type, props) {\n {\n warnForInsertedHydratedElement(parentContainer, type);\n }\n}\nfunction didNotFindHydratableContainerTextInstance(parentContainer, text) {\n {\n warnForInsertedHydratedText(parentContainer, text);\n }\n}\nfunction didNotFindHydratableInstance(parentType, parentProps, parentInstance, type, props) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedElement(parentInstance, type);\n }\n}\nfunction didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, text) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) {\n warnForInsertedHydratedText(parentInstance, text);\n }\n}\nfunction didNotFindHydratableSuspenseInstance(parentType, parentProps, parentInstance) {\n if ( parentProps[SUPPRESS_HYDRATION_WARNING$1] !== true) ;\n}\nvar clientId = 0;\nfunction makeClientIdInDEV(warnOnAccessInDEV) {\n var id = 'r:' + (clientId++).toString(36);\n return {\n toString: function () {\n warnOnAccessInDEV();\n return id;\n },\n valueOf: function () {\n warnOnAccessInDEV();\n return id;\n }\n };\n}\nfunction isOpaqueHydratingObject(value) {\n return value !== null && typeof value === 'object' && value.$$typeof === REACT_OPAQUE_ID_TYPE;\n}\nfunction makeOpaqueHydratingObject(attemptToReadValue) {\n return {\n $$typeof: REACT_OPAQUE_ID_TYPE,\n toString: attemptToReadValue,\n valueOf: attemptToReadValue\n };\n}\nfunction preparePortalMount(portalInstance) {\n {\n listenToAllSupportedEvents(portalInstance);\n }\n}\n\nvar randomKey = Math.random().toString(36).slice(2);\nvar internalInstanceKey = '__reactFiber$' + randomKey;\nvar internalPropsKey = '__reactProps$' + randomKey;\nvar internalContainerInstanceKey = '__reactContainer$' + randomKey;\nvar internalEventHandlersKey = '__reactEvents$' + randomKey;\nfunction precacheFiberNode(hostInst, node) {\n node[internalInstanceKey] = hostInst;\n}\nfunction markContainerAsRoot(hostRoot, node) {\n node[internalContainerInstanceKey] = hostRoot;\n}\nfunction unmarkContainerAsRoot(node) {\n node[internalContainerInstanceKey] = null;\n}\nfunction isContainerMarkedAsRoot(node) {\n return !!node[internalContainerInstanceKey];\n} // Given a DOM node, return the closest HostComponent or HostText fiber ancestor.\n// If the target node is part of a hydrated or not yet rendered subtree, then\n// this may also return a SuspenseComponent or HostRoot to indicate that.\n// Conceptually the HostRoot fiber is a child of the Container node. So if you\n// pass the Container node as the targetNode, you will not actually get the\n// HostRoot back. To get to the HostRoot, you need to pass a child of it.\n// The same thing applies to Suspense boundaries.\n\nfunction getClosestInstanceFromNode(targetNode) {\n var targetInst = targetNode[internalInstanceKey];\n\n if (targetInst) {\n // Don't return HostRoot or SuspenseComponent here.\n return targetInst;\n } // If the direct event target isn't a React owned DOM node, we need to look\n // to see if one of its parents is a React owned DOM node.\n\n\n var parentNode = targetNode.parentNode;\n\n while (parentNode) {\n // We'll check if this is a container root that could include\n // React nodes in the future. We need to check this first because\n // if we're a child of a dehydrated container, we need to first\n // find that inner container before moving on to finding the parent\n // instance. Note that we don't check this field on the targetNode\n // itself because the fibers are conceptually between the container\n // node and the first child. It isn't surrounding the container node.\n // If it's not a container, we check if it's an instance.\n targetInst = parentNode[internalContainerInstanceKey] || parentNode[internalInstanceKey];\n\n if (targetInst) {\n // Since this wasn't the direct target of the event, we might have\n // stepped past dehydrated DOM nodes to get here. However they could\n // also have been non-React nodes. We need to answer which one.\n // If we the instance doesn't have any children, then there can't be\n // a nested suspense boundary within it. So we can use this as a fast\n // bailout. Most of the time, when people add non-React children to\n // the tree, it is using a ref to a child-less DOM node.\n // Normally we'd only need to check one of the fibers because if it\n // has ever gone from having children to deleting them or vice versa\n // it would have deleted the dehydrated boundary nested inside already.\n // However, since the HostRoot starts out with an alternate it might\n // have one on the alternate so we need to check in case this was a\n // root.\n var alternate = targetInst.alternate;\n\n if (targetInst.child !== null || alternate !== null && alternate.child !== null) {\n // Next we need to figure out if the node that skipped past is\n // nested within a dehydrated boundary and if so, which one.\n var suspenseInstance = getParentSuspenseInstance(targetNode);\n\n while (suspenseInstance !== null) {\n // We found a suspense instance. That means that we haven't\n // hydrated it yet. Even though we leave the comments in the\n // DOM after hydrating, and there are boundaries in the DOM\n // that could already be hydrated, we wouldn't have found them\n // through this pass since if the target is hydrated it would\n // have had an internalInstanceKey on it.\n // Let's get the fiber associated with the SuspenseComponent\n // as the deepest instance.\n var targetSuspenseInst = suspenseInstance[internalInstanceKey];\n\n if (targetSuspenseInst) {\n return targetSuspenseInst;\n } // If we don't find a Fiber on the comment, it might be because\n // we haven't gotten to hydrate it yet. There might still be a\n // parent boundary that hasn't above this one so we need to find\n // the outer most that is known.\n\n\n suspenseInstance = getParentSuspenseInstance(suspenseInstance); // If we don't find one, then that should mean that the parent\n // host component also hasn't hydrated yet. We can return it\n // below since it will bail out on the isMounted check later.\n }\n }\n\n return targetInst;\n }\n\n targetNode = parentNode;\n parentNode = targetNode.parentNode;\n }\n\n return null;\n}\n/**\n * Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent\n * instance, or null if the node was not rendered by this React.\n */\n\nfunction getInstanceFromNode(node) {\n var inst = node[internalInstanceKey] || node[internalContainerInstanceKey];\n\n if (inst) {\n if (inst.tag === HostComponent || inst.tag === HostText || inst.tag === SuspenseComponent || inst.tag === HostRoot) {\n return inst;\n } else {\n return null;\n }\n }\n\n return null;\n}\n/**\n * Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding\n * DOM node.\n */\n\nfunction getNodeFromInstance(inst) {\n if (inst.tag === HostComponent || inst.tag === HostText) {\n // In Fiber this, is just the state node right now. We assume it will be\n // a host component or host text.\n return inst.stateNode;\n } // Without this first invariant, passing a non-DOM-component triggers the next\n // invariant for a missing parent, which is super confusing.\n\n\n {\n {\n throw Error( \"getNodeFromInstance: Invalid argument.\" );\n }\n }\n}\nfunction getFiberCurrentPropsFromNode(node) {\n return node[internalPropsKey] || null;\n}\nfunction updateFiberProps(node, props) {\n node[internalPropsKey] = props;\n}\nfunction getEventListenerSet(node) {\n var elementListenerSet = node[internalEventHandlersKey];\n\n if (elementListenerSet === undefined) {\n elementListenerSet = node[internalEventHandlersKey] = new Set();\n }\n\n return elementListenerSet;\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar valueStack = [];\nvar fiberStack;\n\n{\n fiberStack = [];\n}\n\nvar index = -1;\n\nfunction createCursor(defaultValue) {\n return {\n current: defaultValue\n };\n}\n\nfunction pop(cursor, fiber) {\n if (index < 0) {\n {\n error('Unexpected pop.');\n }\n\n return;\n }\n\n {\n if (fiber !== fiberStack[index]) {\n error('Unexpected Fiber popped.');\n }\n }\n\n cursor.current = valueStack[index];\n valueStack[index] = null;\n\n {\n fiberStack[index] = null;\n }\n\n index--;\n}\n\nfunction push(cursor, value, fiber) {\n index++;\n valueStack[index] = cursor.current;\n\n {\n fiberStack[index] = fiber;\n }\n\n cursor.current = value;\n}\n\nvar warnedAboutMissingGetChildContext;\n\n{\n warnedAboutMissingGetChildContext = {};\n}\n\nvar emptyContextObject = {};\n\n{\n Object.freeze(emptyContextObject);\n} // A cursor to the current merged context object on the stack.\n\n\nvar contextStackCursor = createCursor(emptyContextObject); // A cursor to a boolean indicating whether the context has changed.\n\nvar didPerformWorkStackCursor = createCursor(false); // Keep track of the previous context object that was on the stack.\n// We use this to get access to the parent context after we have already\n// pushed the next context provider, and now need to merge their contexts.\n\nvar previousContext = emptyContextObject;\n\nfunction getUnmaskedContext(workInProgress, Component, didPushOwnContextIfProvider) {\n {\n if (didPushOwnContextIfProvider && isContextProvider(Component)) {\n // If the fiber is a context provider itself, when we read its context\n // we may have already pushed its own child context on the stack. A context\n // provider should not \"see\" its own child context. Therefore we read the\n // previous (parent) context instead for a context provider.\n return previousContext;\n }\n\n return contextStackCursor.current;\n }\n}\n\nfunction cacheContext(workInProgress, unmaskedContext, maskedContext) {\n {\n var instance = workInProgress.stateNode;\n instance.__reactInternalMemoizedUnmaskedChildContext = unmaskedContext;\n instance.__reactInternalMemoizedMaskedChildContext = maskedContext;\n }\n}\n\nfunction getMaskedContext(workInProgress, unmaskedContext) {\n {\n var type = workInProgress.type;\n var contextTypes = type.contextTypes;\n\n if (!contextTypes) {\n return emptyContextObject;\n } // Avoid recreating masked context unless unmasked context has changed.\n // Failing to do this will result in unnecessary calls to componentWillReceiveProps.\n // This may trigger infinite loops if componentWillReceiveProps calls setState.\n\n\n var instance = workInProgress.stateNode;\n\n if (instance && instance.__reactInternalMemoizedUnmaskedChildContext === unmaskedContext) {\n return instance.__reactInternalMemoizedMaskedChildContext;\n }\n\n var context = {};\n\n for (var key in contextTypes) {\n context[key] = unmaskedContext[key];\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(contextTypes, context, 'context', name);\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // Context is created before the class component is instantiated so check for instance.\n\n\n if (instance) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return context;\n }\n}\n\nfunction hasContextChanged() {\n {\n return didPerformWorkStackCursor.current;\n }\n}\n\nfunction isContextProvider(type) {\n {\n var childContextTypes = type.childContextTypes;\n return childContextTypes !== null && childContextTypes !== undefined;\n }\n}\n\nfunction popContext(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction popTopLevelContextObject(fiber) {\n {\n pop(didPerformWorkStackCursor, fiber);\n pop(contextStackCursor, fiber);\n }\n}\n\nfunction pushTopLevelContextObject(fiber, context, didChange) {\n {\n if (!(contextStackCursor.current === emptyContextObject)) {\n {\n throw Error( \"Unexpected context found on stack. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n push(contextStackCursor, context, fiber);\n push(didPerformWorkStackCursor, didChange, fiber);\n }\n}\n\nfunction processChildContext(fiber, type, parentContext) {\n {\n var instance = fiber.stateNode;\n var childContextTypes = type.childContextTypes; // TODO (bvaughn) Replace this behavior with an invariant() in the future.\n // It has only been added in Fiber to match the (unintentional) behavior in Stack.\n\n if (typeof instance.getChildContext !== 'function') {\n {\n var componentName = getComponentName(type) || 'Unknown';\n\n if (!warnedAboutMissingGetChildContext[componentName]) {\n warnedAboutMissingGetChildContext[componentName] = true;\n\n error('%s.childContextTypes is specified but there is no getChildContext() method ' + 'on the instance. You can either define getChildContext() on %s or remove ' + 'childContextTypes from it.', componentName, componentName);\n }\n }\n\n return parentContext;\n }\n\n var childContext = instance.getChildContext();\n\n for (var contextKey in childContext) {\n if (!(contextKey in childContextTypes)) {\n {\n throw Error( (getComponentName(type) || 'Unknown') + \".getChildContext(): key \\\"\" + contextKey + \"\\\" is not defined in childContextTypes.\" );\n }\n }\n }\n\n {\n var name = getComponentName(type) || 'Unknown';\n checkPropTypes(childContextTypes, childContext, 'child context', name);\n }\n\n return _assign({}, parentContext, childContext);\n }\n}\n\nfunction pushContextProvider(workInProgress) {\n {\n var instance = workInProgress.stateNode; // We push the context as early as possible to ensure stack integrity.\n // If the instance does not exist yet, we will push null at first,\n // and replace it on the stack later when invalidating the context.\n\n var memoizedMergedChildContext = instance && instance.__reactInternalMemoizedMergedChildContext || emptyContextObject; // Remember the parent context so we can merge with it later.\n // Inherit the parent's did-perform-work value to avoid inadvertently blocking updates.\n\n previousContext = contextStackCursor.current;\n push(contextStackCursor, memoizedMergedChildContext, workInProgress);\n push(didPerformWorkStackCursor, didPerformWorkStackCursor.current, workInProgress);\n return true;\n }\n}\n\nfunction invalidateContextProvider(workInProgress, type, didChange) {\n {\n var instance = workInProgress.stateNode;\n\n if (!instance) {\n {\n throw Error( \"Expected to have an instance by this point. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n if (didChange) {\n // Merge parent and own context.\n // Skip this if we're not updating due to sCU.\n // This avoids unnecessarily recomputing memoized values.\n var mergedContext = processChildContext(workInProgress, type, previousContext);\n instance.__reactInternalMemoizedMergedChildContext = mergedContext; // Replace the old (or empty) context with the new one.\n // It is important to unwind the context in the reverse order.\n\n pop(didPerformWorkStackCursor, workInProgress);\n pop(contextStackCursor, workInProgress); // Now push the new context and mark that it has changed.\n\n push(contextStackCursor, mergedContext, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n } else {\n pop(didPerformWorkStackCursor, workInProgress);\n push(didPerformWorkStackCursor, didChange, workInProgress);\n }\n }\n}\n\nfunction findCurrentUnmaskedContext(fiber) {\n {\n // Currently this is only used with renderSubtreeIntoContainer; not sure if it\n // makes sense elsewhere\n if (!(isFiberMounted(fiber) && fiber.tag === ClassComponent)) {\n {\n throw Error( \"Expected subtree parent to be a mounted class component. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var node = fiber;\n\n do {\n switch (node.tag) {\n case HostRoot:\n return node.stateNode.context;\n\n case ClassComponent:\n {\n var Component = node.type;\n\n if (isContextProvider(Component)) {\n return node.stateNode.__reactInternalMemoizedMergedChildContext;\n }\n\n break;\n }\n }\n\n node = node.return;\n } while (node !== null);\n\n {\n {\n throw Error( \"Found unexpected detached subtree parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nvar LegacyRoot = 0;\nvar BlockingRoot = 1;\nvar ConcurrentRoot = 2;\n\nvar rendererID = null;\nvar injectedHook = null;\nvar hasLoggedError = false;\nvar isDevToolsPresent = typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined';\nfunction injectInternals(internals) {\n if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n // No DevTools\n return false;\n }\n\n var hook = __REACT_DEVTOOLS_GLOBAL_HOOK__;\n\n if (hook.isDisabled) {\n // This isn't a real property on the hook, but it can be set to opt out\n // of DevTools integration and associated warnings and logs.\n // https://github.com/facebook/react/issues/3877\n return true;\n }\n\n if (!hook.supportsFiber) {\n {\n error('The installed version of React DevTools is too old and will not work ' + 'with the current version of React. Please update React DevTools. ' + 'https://reactjs.org/link/react-devtools');\n } // DevTools exists, even though it doesn't support Fiber.\n\n\n return true;\n }\n\n try {\n rendererID = hook.inject(internals); // We have successfully injected, so now it is safe to set up hooks.\n\n injectedHook = hook;\n } catch (err) {\n // Catch all errors because it is unsafe to throw during initialization.\n {\n error('React instrumentation encountered an error: %s.', err);\n }\n } // DevTools exists\n\n\n return true;\n}\nfunction onScheduleRoot(root, children) {\n {\n if (injectedHook && typeof injectedHook.onScheduleFiberRoot === 'function') {\n try {\n injectedHook.onScheduleFiberRoot(rendererID, root, children);\n } catch (err) {\n if ( !hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitRoot(root, priorityLevel) {\n if (injectedHook && typeof injectedHook.onCommitFiberRoot === 'function') {\n try {\n var didError = (root.current.flags & DidCapture) === DidCapture;\n\n if (enableProfilerTimer) {\n injectedHook.onCommitFiberRoot(rendererID, root, priorityLevel, didError);\n } else {\n injectedHook.onCommitFiberRoot(rendererID, root, undefined, didError);\n }\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\nfunction onCommitUnmount(fiber) {\n if (injectedHook && typeof injectedHook.onCommitFiberUnmount === 'function') {\n try {\n injectedHook.onCommitFiberUnmount(rendererID, fiber);\n } catch (err) {\n {\n if (!hasLoggedError) {\n hasLoggedError = true;\n\n error('React instrumentation encountered an error: %s', err);\n }\n }\n }\n }\n}\n\nvar Scheduler_runWithPriority = Scheduler.unstable_runWithPriority,\n Scheduler_scheduleCallback = Scheduler.unstable_scheduleCallback,\n Scheduler_cancelCallback = Scheduler.unstable_cancelCallback,\n Scheduler_shouldYield = Scheduler.unstable_shouldYield,\n Scheduler_requestPaint = Scheduler.unstable_requestPaint,\n Scheduler_now$1 = Scheduler.unstable_now,\n Scheduler_getCurrentPriorityLevel = Scheduler.unstable_getCurrentPriorityLevel,\n Scheduler_ImmediatePriority = Scheduler.unstable_ImmediatePriority,\n Scheduler_UserBlockingPriority = Scheduler.unstable_UserBlockingPriority,\n Scheduler_NormalPriority = Scheduler.unstable_NormalPriority,\n Scheduler_LowPriority = Scheduler.unstable_LowPriority,\n Scheduler_IdlePriority = Scheduler.unstable_IdlePriority;\n\n{\n // Provide explicit error message when production+profiling bundle of e.g.\n // react-dom is used with production (non-profiling) bundle of\n // scheduler/tracing\n if (!(tracing.__interactionsRef != null && tracing.__interactionsRef.current != null)) {\n {\n throw Error( \"It is not supported to run the profiling version of a renderer (for example, `react-dom/profiling`) without also replacing the `scheduler/tracing` module with `scheduler/tracing-profiling`. Your bundler might have a setting for aliasing both modules. Learn more at https://reactjs.org/link/profiling\" );\n }\n }\n}\n\nvar fakeCallbackNode = {}; // Except for NoPriority, these correspond to Scheduler priorities. We use\n// ascending numbers so we can compare them like numbers. They start at 90 to\n// avoid clashing with Scheduler's priorities.\n\nvar ImmediatePriority$1 = 99;\nvar UserBlockingPriority$2 = 98;\nvar NormalPriority$1 = 97;\nvar LowPriority$1 = 96;\nvar IdlePriority$1 = 95; // NoPriority is the absence of priority. Also React-only.\n\nvar NoPriority$1 = 90;\nvar shouldYield = Scheduler_shouldYield;\nvar requestPaint = // Fall back gracefully if we're running an older version of Scheduler.\nScheduler_requestPaint !== undefined ? Scheduler_requestPaint : function () {};\nvar syncQueue = null;\nvar immediateQueueCallbackNode = null;\nvar isFlushingSyncQueue = false;\nvar initialTimeMs$1 = Scheduler_now$1(); // If the initial timestamp is reasonably small, use Scheduler's `now` directly.\n// This will be the case for modern browsers that support `performance.now`. In\n// older browsers, Scheduler falls back to `Date.now`, which returns a Unix\n// timestamp. In that case, subtract the module initialization time to simulate\n// the behavior of performance.now and keep our times small enough to fit\n// within 32 bits.\n// TODO: Consider lifting this into Scheduler.\n\nvar now = initialTimeMs$1 < 10000 ? Scheduler_now$1 : function () {\n return Scheduler_now$1() - initialTimeMs$1;\n};\nfunction getCurrentPriorityLevel() {\n switch (Scheduler_getCurrentPriorityLevel()) {\n case Scheduler_ImmediatePriority:\n return ImmediatePriority$1;\n\n case Scheduler_UserBlockingPriority:\n return UserBlockingPriority$2;\n\n case Scheduler_NormalPriority:\n return NormalPriority$1;\n\n case Scheduler_LowPriority:\n return LowPriority$1;\n\n case Scheduler_IdlePriority:\n return IdlePriority$1;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction reactPriorityToSchedulerPriority(reactPriorityLevel) {\n switch (reactPriorityLevel) {\n case ImmediatePriority$1:\n return Scheduler_ImmediatePriority;\n\n case UserBlockingPriority$2:\n return Scheduler_UserBlockingPriority;\n\n case NormalPriority$1:\n return Scheduler_NormalPriority;\n\n case LowPriority$1:\n return Scheduler_LowPriority;\n\n case IdlePriority$1:\n return Scheduler_IdlePriority;\n\n default:\n {\n {\n throw Error( \"Unknown priority level.\" );\n }\n }\n\n }\n}\n\nfunction runWithPriority$1(reactPriorityLevel, fn) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_runWithPriority(priorityLevel, fn);\n}\nfunction scheduleCallback(reactPriorityLevel, callback, options) {\n var priorityLevel = reactPriorityToSchedulerPriority(reactPriorityLevel);\n return Scheduler_scheduleCallback(priorityLevel, callback, options);\n}\nfunction scheduleSyncCallback(callback) {\n // Push this callback into an internal queue. We'll flush these either in\n // the next tick, or earlier if something calls `flushSyncCallbackQueue`.\n if (syncQueue === null) {\n syncQueue = [callback]; // Flush the queue in the next tick, at the earliest.\n\n immediateQueueCallbackNode = Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueueImpl);\n } else {\n // Push onto existing queue. Don't need to schedule a callback because\n // we already scheduled one when we created the queue.\n syncQueue.push(callback);\n }\n\n return fakeCallbackNode;\n}\nfunction cancelCallback(callbackNode) {\n if (callbackNode !== fakeCallbackNode) {\n Scheduler_cancelCallback(callbackNode);\n }\n}\nfunction flushSyncCallbackQueue() {\n if (immediateQueueCallbackNode !== null) {\n var node = immediateQueueCallbackNode;\n immediateQueueCallbackNode = null;\n Scheduler_cancelCallback(node);\n }\n\n flushSyncCallbackQueueImpl();\n}\n\nfunction flushSyncCallbackQueueImpl() {\n if (!isFlushingSyncQueue && syncQueue !== null) {\n // Prevent re-entrancy.\n isFlushingSyncQueue = true;\n var i = 0;\n\n {\n try {\n var _isSync2 = true;\n var _queue = syncQueue;\n runWithPriority$1(ImmediatePriority$1, function () {\n for (; i < _queue.length; i++) {\n var callback = _queue[i];\n\n do {\n callback = callback(_isSync2);\n } while (callback !== null);\n }\n });\n syncQueue = null;\n } catch (error) {\n // If something throws, leave the remaining callbacks on the queue.\n if (syncQueue !== null) {\n syncQueue = syncQueue.slice(i + 1);\n } // Resume flushing in the next tick\n\n\n Scheduler_scheduleCallback(Scheduler_ImmediatePriority, flushSyncCallbackQueue);\n throw error;\n } finally {\n isFlushingSyncQueue = false;\n }\n }\n }\n}\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\nvar NoMode = 0;\nvar StrictMode = 1; // TODO: Remove BlockingMode and ConcurrentMode by reading from the root\n// tag instead\n\nvar BlockingMode = 2;\nvar ConcurrentMode = 4;\nvar ProfileMode = 8;\nvar DebugTracingMode = 16;\n\nvar ReactCurrentBatchConfig = ReactSharedInternals.ReactCurrentBatchConfig;\nvar NoTransition = 0;\nfunction requestCurrentTransition() {\n return ReactCurrentBatchConfig.transition;\n}\n\nvar ReactStrictModeWarnings = {\n recordUnsafeLifecycleWarnings: function (fiber, instance) {},\n flushPendingUnsafeLifecycleWarnings: function () {},\n recordLegacyContextWarning: function (fiber, instance) {},\n flushLegacyContextWarning: function () {},\n discardPendingWarnings: function () {}\n};\n\n{\n var findStrictRoot = function (fiber) {\n var maybeStrictRoot = null;\n var node = fiber;\n\n while (node !== null) {\n if (node.mode & StrictMode) {\n maybeStrictRoot = node;\n }\n\n node = node.return;\n }\n\n return maybeStrictRoot;\n };\n\n var setToSortedString = function (set) {\n var array = [];\n set.forEach(function (value) {\n array.push(value);\n });\n return array.sort().join(', ');\n };\n\n var pendingComponentWillMountWarnings = [];\n var pendingUNSAFE_ComponentWillMountWarnings = [];\n var pendingComponentWillReceivePropsWarnings = [];\n var pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n var pendingComponentWillUpdateWarnings = [];\n var pendingUNSAFE_ComponentWillUpdateWarnings = []; // Tracks components we have already warned about.\n\n var didWarnAboutUnsafeLifecycles = new Set();\n\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings = function (fiber, instance) {\n // Dedup strategy: Warn once per component.\n if (didWarnAboutUnsafeLifecycles.has(fiber.type)) {\n return;\n }\n\n if (typeof instance.componentWillMount === 'function' && // Don't warn about react-lifecycles-compat polyfilled components.\n instance.componentWillMount.__suppressDeprecationWarning !== true) {\n pendingComponentWillMountWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillMount === 'function') {\n pendingUNSAFE_ComponentWillMountWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n pendingComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.push(fiber);\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n pendingComponentWillUpdateWarnings.push(fiber);\n }\n\n if (fiber.mode & StrictMode && typeof instance.UNSAFE_componentWillUpdate === 'function') {\n pendingUNSAFE_ComponentWillUpdateWarnings.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings = function () {\n // We do an initial pass to gather component names\n var componentWillMountUniqueNames = new Set();\n\n if (pendingComponentWillMountWarnings.length > 0) {\n pendingComponentWillMountWarnings.forEach(function (fiber) {\n componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillMountWarnings = [];\n }\n\n var UNSAFE_componentWillMountUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillMountWarnings.length > 0) {\n pendingUNSAFE_ComponentWillMountWarnings.forEach(function (fiber) {\n UNSAFE_componentWillMountUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillMountWarnings = [];\n }\n\n var componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingComponentWillReceivePropsWarnings.length > 0) {\n pendingComponentWillReceivePropsWarnings.forEach(function (fiber) {\n componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillReceivePropsWarnings = [];\n }\n\n var UNSAFE_componentWillReceivePropsUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillReceivePropsWarnings.length > 0) {\n pendingUNSAFE_ComponentWillReceivePropsWarnings.forEach(function (fiber) {\n UNSAFE_componentWillReceivePropsUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n }\n\n var componentWillUpdateUniqueNames = new Set();\n\n if (pendingComponentWillUpdateWarnings.length > 0) {\n pendingComponentWillUpdateWarnings.forEach(function (fiber) {\n componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingComponentWillUpdateWarnings = [];\n }\n\n var UNSAFE_componentWillUpdateUniqueNames = new Set();\n\n if (pendingUNSAFE_ComponentWillUpdateWarnings.length > 0) {\n pendingUNSAFE_ComponentWillUpdateWarnings.forEach(function (fiber) {\n UNSAFE_componentWillUpdateUniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutUnsafeLifecycles.add(fiber.type);\n });\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n } // Finally, we flush all the warnings\n // UNSAFE_ ones before the deprecated ones, since they'll be 'louder'\n\n\n if (UNSAFE_componentWillMountUniqueNames.size > 0) {\n var sortedNames = setToSortedString(UNSAFE_componentWillMountUniqueNames);\n\n error('Using UNSAFE_componentWillMount in strict mode is not recommended and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '\\nPlease update the following components: %s', sortedNames);\n }\n\n if (UNSAFE_componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames = setToSortedString(UNSAFE_componentWillReceivePropsUniqueNames);\n\n error('Using UNSAFE_componentWillReceiveProps in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, \" + 'refactor your code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '\\nPlease update the following components: %s', _sortedNames);\n }\n\n if (UNSAFE_componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames2 = setToSortedString(UNSAFE_componentWillUpdateUniqueNames);\n\n error('Using UNSAFE_componentWillUpdate in strict mode is not recommended ' + 'and may indicate bugs in your code. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '\\nPlease update the following components: %s', _sortedNames2);\n }\n\n if (componentWillMountUniqueNames.size > 0) {\n var _sortedNames3 = setToSortedString(componentWillMountUniqueNames);\n\n warn('componentWillMount has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move code with side effects to componentDidMount, and set initial state in the constructor.\\n' + '* Rename componentWillMount to UNSAFE_componentWillMount to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames3);\n }\n\n if (componentWillReceivePropsUniqueNames.size > 0) {\n var _sortedNames4 = setToSortedString(componentWillReceivePropsUniqueNames);\n\n warn('componentWillReceiveProps has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + \"* If you're updating state whenever props change, refactor your \" + 'code to use memoization techniques or move it to ' + 'static getDerivedStateFromProps. Learn more at: https://reactjs.org/link/derived-state\\n' + '* Rename componentWillReceiveProps to UNSAFE_componentWillReceiveProps to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames4);\n }\n\n if (componentWillUpdateUniqueNames.size > 0) {\n var _sortedNames5 = setToSortedString(componentWillUpdateUniqueNames);\n\n warn('componentWillUpdate has been renamed, and is not recommended for use. ' + 'See https://reactjs.org/link/unsafe-component-lifecycles for details.\\n\\n' + '* Move data fetching code or side effects to componentDidUpdate.\\n' + '* Rename componentWillUpdate to UNSAFE_componentWillUpdate to suppress ' + 'this warning in non-strict mode. In React 18.x, only the UNSAFE_ name will work. ' + 'To rename all deprecated lifecycles to their new names, you can run ' + '`npx react-codemod rename-unsafe-lifecycles` in your project source folder.\\n' + '\\nPlease update the following components: %s', _sortedNames5);\n }\n };\n\n var pendingLegacyContextWarning = new Map(); // Tracks components we have already warned about.\n\n var didWarnAboutLegacyContext = new Set();\n\n ReactStrictModeWarnings.recordLegacyContextWarning = function (fiber, instance) {\n var strictRoot = findStrictRoot(fiber);\n\n if (strictRoot === null) {\n error('Expected to find a StrictMode component in a strict mode tree. ' + 'This error is likely caused by a bug in React. Please file an issue.');\n\n return;\n } // Dedup strategy: Warn once per component.\n\n\n if (didWarnAboutLegacyContext.has(fiber.type)) {\n return;\n }\n\n var warningsForRoot = pendingLegacyContextWarning.get(strictRoot);\n\n if (fiber.type.contextTypes != null || fiber.type.childContextTypes != null || instance !== null && typeof instance.getChildContext === 'function') {\n if (warningsForRoot === undefined) {\n warningsForRoot = [];\n pendingLegacyContextWarning.set(strictRoot, warningsForRoot);\n }\n\n warningsForRoot.push(fiber);\n }\n };\n\n ReactStrictModeWarnings.flushLegacyContextWarning = function () {\n pendingLegacyContextWarning.forEach(function (fiberArray, strictRoot) {\n if (fiberArray.length === 0) {\n return;\n }\n\n var firstFiber = fiberArray[0];\n var uniqueNames = new Set();\n fiberArray.forEach(function (fiber) {\n uniqueNames.add(getComponentName(fiber.type) || 'Component');\n didWarnAboutLegacyContext.add(fiber.type);\n });\n var sortedNames = setToSortedString(uniqueNames);\n\n try {\n setCurrentFiber(firstFiber);\n\n error('Legacy context API has been detected within a strict-mode tree.' + '\\n\\nThe old API will be supported in all 16.x releases, but applications ' + 'using it should migrate to the new version.' + '\\n\\nPlease update the following components: %s' + '\\n\\nLearn more about this warning here: https://reactjs.org/link/legacy-context', sortedNames);\n } finally {\n resetCurrentFiber();\n }\n });\n };\n\n ReactStrictModeWarnings.discardPendingWarnings = function () {\n pendingComponentWillMountWarnings = [];\n pendingUNSAFE_ComponentWillMountWarnings = [];\n pendingComponentWillReceivePropsWarnings = [];\n pendingUNSAFE_ComponentWillReceivePropsWarnings = [];\n pendingComponentWillUpdateWarnings = [];\n pendingUNSAFE_ComponentWillUpdateWarnings = [];\n pendingLegacyContextWarning = new Map();\n };\n}\n\nfunction resolveDefaultProps(Component, baseProps) {\n if (Component && Component.defaultProps) {\n // Resolve default props. Taken from ReactElement\n var props = _assign({}, baseProps);\n\n var defaultProps = Component.defaultProps;\n\n for (var propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n }\n\n return baseProps;\n}\n\n// Max 31 bit integer. The max integer size in V8 for 32-bit systems.\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nvar valueCursor = createCursor(null);\nvar rendererSigil;\n\n{\n // Use this to detect multiple renderers using the same context\n rendererSigil = {};\n}\n\nvar currentlyRenderingFiber = null;\nvar lastContextDependency = null;\nvar lastContextWithAllBitsObserved = null;\nvar isDisallowedContextReadInDEV = false;\nfunction resetContextDependencies() {\n // This is called right before React yields execution, to ensure `readContext`\n // cannot be called outside the render phase.\n currentlyRenderingFiber = null;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction enterDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = true;\n }\n}\nfunction exitDisallowedContextReadInDEV() {\n {\n isDisallowedContextReadInDEV = false;\n }\n}\nfunction pushProvider(providerFiber, nextValue) {\n var context = providerFiber.type._context;\n\n {\n push(valueCursor, context._currentValue, providerFiber);\n context._currentValue = nextValue;\n\n {\n if (context._currentRenderer !== undefined && context._currentRenderer !== null && context._currentRenderer !== rendererSigil) {\n error('Detected multiple renderers concurrently rendering the ' + 'same context provider. This is currently unsupported.');\n }\n\n context._currentRenderer = rendererSigil;\n }\n }\n}\nfunction popProvider(providerFiber) {\n var currentValue = valueCursor.current;\n pop(valueCursor, providerFiber);\n var context = providerFiber.type._context;\n\n {\n context._currentValue = currentValue;\n }\n}\nfunction calculateChangedBits(context, newValue, oldValue) {\n if (objectIs(oldValue, newValue)) {\n // No change\n return 0;\n } else {\n var changedBits = typeof context._calculateChangedBits === 'function' ? context._calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n {\n if ((changedBits & MAX_SIGNED_31_BIT_INT) !== changedBits) {\n error('calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n }\n\n return changedBits | 0;\n }\n}\nfunction scheduleWorkOnParentPath(parent, renderLanes) {\n // Update the child lanes of all the ancestors, including the alternates.\n var node = parent;\n\n while (node !== null) {\n var alternate = node.alternate;\n\n if (!isSubsetOfLanes(node.childLanes, renderLanes)) {\n node.childLanes = mergeLanes(node.childLanes, renderLanes);\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n }\n } else if (alternate !== null && !isSubsetOfLanes(alternate.childLanes, renderLanes)) {\n alternate.childLanes = mergeLanes(alternate.childLanes, renderLanes);\n } else {\n // Neither alternate was updated, which means the rest of the\n // ancestor path already has sufficient priority.\n break;\n }\n\n node = node.return;\n }\n}\nfunction propagateContextChange(workInProgress, context, changedBits, renderLanes) {\n var fiber = workInProgress.child;\n\n if (fiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n fiber.return = workInProgress;\n }\n\n while (fiber !== null) {\n var nextFiber = void 0; // Visit this fiber.\n\n var list = fiber.dependencies;\n\n if (list !== null) {\n nextFiber = fiber.child;\n var dependency = list.firstContext;\n\n while (dependency !== null) {\n // Check if the context matches.\n if (dependency.context === context && (dependency.observedBits & changedBits) !== 0) {\n // Match! Schedule an update on this fiber.\n if (fiber.tag === ClassComponent) {\n // Schedule a force update on the work-in-progress.\n var update = createUpdate(NoTimestamp, pickArbitraryLane(renderLanes));\n update.tag = ForceUpdate; // TODO: Because we don't have a work-in-progress, this will add the\n // update to the current fiber, too, which means it will persist even if\n // this render is thrown away. Since it's a race condition, not sure it's\n // worth fixing.\n\n enqueueUpdate(fiber, update);\n }\n\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes); // Mark the updated lanes on the list, too.\n\n list.lanes = mergeLanes(list.lanes, renderLanes); // Since we already found a match, we can stop traversing the\n // dependency list.\n\n break;\n }\n\n dependency = dependency.next;\n }\n } else if (fiber.tag === ContextProvider) {\n // Don't scan deeper if this is a matching provider\n nextFiber = fiber.type === workInProgress.type ? null : fiber.child;\n } else {\n // Traverse down.\n nextFiber = fiber.child;\n }\n\n if (nextFiber !== null) {\n // Set the return pointer of the child to the work-in-progress fiber.\n nextFiber.return = fiber;\n } else {\n // No child. Traverse to next sibling.\n nextFiber = fiber;\n\n while (nextFiber !== null) {\n if (nextFiber === workInProgress) {\n // We're back to the root of this subtree. Exit.\n nextFiber = null;\n break;\n }\n\n var sibling = nextFiber.sibling;\n\n if (sibling !== null) {\n // Set the return pointer of the sibling to the work-in-progress fiber.\n sibling.return = nextFiber.return;\n nextFiber = sibling;\n break;\n } // No more siblings. Traverse up.\n\n\n nextFiber = nextFiber.return;\n }\n }\n\n fiber = nextFiber;\n }\n}\nfunction prepareToReadContext(workInProgress, renderLanes) {\n currentlyRenderingFiber = workInProgress;\n lastContextDependency = null;\n lastContextWithAllBitsObserved = null;\n var dependencies = workInProgress.dependencies;\n\n if (dependencies !== null) {\n var firstContext = dependencies.firstContext;\n\n if (firstContext !== null) {\n if (includesSomeLane(dependencies.lanes, renderLanes)) {\n // Context list has a pending update. Mark that this fiber performed work.\n markWorkInProgressReceivedUpdate();\n } // Reset the work-in-progress list\n\n\n dependencies.firstContext = null;\n }\n }\n}\nfunction readContext(context, observedBits) {\n {\n // This warning would fire if you read context inside a Hook like useMemo.\n // Unlike the class check below, it's not enforced in production for perf.\n if (isDisallowedContextReadInDEV) {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n }\n }\n\n if (lastContextWithAllBitsObserved === context) ; else if (observedBits === false || observedBits === 0) ; else {\n var resolvedObservedBits; // Avoid deopting on observable arguments or heterogeneous types.\n\n if (typeof observedBits !== 'number' || observedBits === MAX_SIGNED_31_BIT_INT) {\n // Observe all updates.\n lastContextWithAllBitsObserved = context;\n resolvedObservedBits = MAX_SIGNED_31_BIT_INT;\n } else {\n resolvedObservedBits = observedBits;\n }\n\n var contextItem = {\n context: context,\n observedBits: resolvedObservedBits,\n next: null\n };\n\n if (lastContextDependency === null) {\n if (!(currentlyRenderingFiber !== null)) {\n {\n throw Error( \"Context can only be read while React is rendering. In classes, you can read it in the render method or getDerivedStateFromProps. In function components, you can read it directly in the function body, but not inside Hooks like useReducer() or useMemo().\" );\n }\n } // This is the first dependency for this component. Create a new list.\n\n\n lastContextDependency = contextItem;\n currentlyRenderingFiber.dependencies = {\n lanes: NoLanes,\n firstContext: contextItem,\n responders: null\n };\n } else {\n // Append a new context item.\n lastContextDependency = lastContextDependency.next = contextItem;\n }\n }\n\n return context._currentValue ;\n}\n\nvar UpdateState = 0;\nvar ReplaceState = 1;\nvar ForceUpdate = 2;\nvar CaptureUpdate = 3; // Global state that is reset at the beginning of calling `processUpdateQueue`.\n// It should only be read right after calling `processUpdateQueue`, via\n// `checkHasForceUpdateAfterProcessing`.\n\nvar hasForceUpdate = false;\nvar didWarnUpdateInsideUpdate;\nvar currentlyProcessingQueue;\n\n{\n didWarnUpdateInsideUpdate = false;\n currentlyProcessingQueue = null;\n}\n\nfunction initializeUpdateQueue(fiber) {\n var queue = {\n baseState: fiber.memoizedState,\n firstBaseUpdate: null,\n lastBaseUpdate: null,\n shared: {\n pending: null\n },\n effects: null\n };\n fiber.updateQueue = queue;\n}\nfunction cloneUpdateQueue(current, workInProgress) {\n // Clone the update queue from current. Unless it's already a clone.\n var queue = workInProgress.updateQueue;\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n var clone = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: currentQueue.firstBaseUpdate,\n lastBaseUpdate: currentQueue.lastBaseUpdate,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = clone;\n }\n}\nfunction createUpdate(eventTime, lane) {\n var update = {\n eventTime: eventTime,\n lane: lane,\n tag: UpdateState,\n payload: null,\n callback: null,\n next: null\n };\n return update;\n}\nfunction enqueueUpdate(fiber, update) {\n var updateQueue = fiber.updateQueue;\n\n if (updateQueue === null) {\n // Only occurs if the fiber has been unmounted.\n return;\n }\n\n var sharedQueue = updateQueue.shared;\n var pending = sharedQueue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n sharedQueue.pending = update;\n\n {\n if (currentlyProcessingQueue === sharedQueue && !didWarnUpdateInsideUpdate) {\n error('An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');\n\n didWarnUpdateInsideUpdate = true;\n }\n }\n}\nfunction enqueueCapturedUpdate(workInProgress, capturedUpdate) {\n // Captured updates are updates that are thrown by a child during the render\n // phase. They should be discarded if the render is aborted. Therefore,\n // we should only put them on the work-in-progress queue, not the current one.\n var queue = workInProgress.updateQueue; // Check if the work-in-progress queue is a clone.\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n var currentQueue = current.updateQueue;\n\n if (queue === currentQueue) {\n // The work-in-progress queue is the same as current. This happens when\n // we bail out on a parent fiber that then captures an error thrown by\n // a child. Since we want to append the update only to the work-in\n // -progress queue, we need to clone the updates. We usually clone during\n // processUpdateQueue, but that didn't happen in this case because we\n // skipped over the parent when we bailed out.\n var newFirst = null;\n var newLast = null;\n var firstBaseUpdate = queue.firstBaseUpdate;\n\n if (firstBaseUpdate !== null) {\n // Loop through the updates and clone them.\n var update = firstBaseUpdate;\n\n do {\n var clone = {\n eventTime: update.eventTime,\n lane: update.lane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLast === null) {\n newFirst = newLast = clone;\n } else {\n newLast.next = clone;\n newLast = clone;\n }\n\n update = update.next;\n } while (update !== null); // Append the captured update the end of the cloned list.\n\n\n if (newLast === null) {\n newFirst = newLast = capturedUpdate;\n } else {\n newLast.next = capturedUpdate;\n newLast = capturedUpdate;\n }\n } else {\n // There are no base updates.\n newFirst = newLast = capturedUpdate;\n }\n\n queue = {\n baseState: currentQueue.baseState,\n firstBaseUpdate: newFirst,\n lastBaseUpdate: newLast,\n shared: currentQueue.shared,\n effects: currentQueue.effects\n };\n workInProgress.updateQueue = queue;\n return;\n }\n } // Append the update to the end of the list.\n\n\n var lastBaseUpdate = queue.lastBaseUpdate;\n\n if (lastBaseUpdate === null) {\n queue.firstBaseUpdate = capturedUpdate;\n } else {\n lastBaseUpdate.next = capturedUpdate;\n }\n\n queue.lastBaseUpdate = capturedUpdate;\n}\n\nfunction getStateFromUpdate(workInProgress, queue, update, prevState, nextProps, instance) {\n switch (update.tag) {\n case ReplaceState:\n {\n var payload = update.payload;\n\n if (typeof payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n var nextState = payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n\n return nextState;\n } // State object\n\n\n return payload;\n }\n\n case CaptureUpdate:\n {\n workInProgress.flags = workInProgress.flags & ~ShouldCapture | DidCapture;\n }\n // Intentional fallthrough\n\n case UpdateState:\n {\n var _payload = update.payload;\n var partialState;\n\n if (typeof _payload === 'function') {\n // Updater function\n {\n enterDisallowedContextReadInDEV();\n }\n\n partialState = _payload.call(instance, prevState, nextProps);\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n _payload.call(instance, prevState, nextProps);\n } finally {\n reenableLogs();\n }\n }\n\n exitDisallowedContextReadInDEV();\n }\n } else {\n // Partial state object\n partialState = _payload;\n }\n\n if (partialState === null || partialState === undefined) {\n // Null and undefined are treated as no-ops.\n return prevState;\n } // Merge the partial state and the previous state.\n\n\n return _assign({}, prevState, partialState);\n }\n\n case ForceUpdate:\n {\n hasForceUpdate = true;\n return prevState;\n }\n }\n\n return prevState;\n}\n\nfunction processUpdateQueue(workInProgress, props, instance, renderLanes) {\n // This is always non-null on a ClassComponent or HostRoot\n var queue = workInProgress.updateQueue;\n hasForceUpdate = false;\n\n {\n currentlyProcessingQueue = queue.shared;\n }\n\n var firstBaseUpdate = queue.firstBaseUpdate;\n var lastBaseUpdate = queue.lastBaseUpdate; // Check if there are pending updates. If so, transfer them to the base queue.\n\n var pendingQueue = queue.shared.pending;\n\n if (pendingQueue !== null) {\n queue.shared.pending = null; // The pending queue is circular. Disconnect the pointer between first\n // and last so that it's non-circular.\n\n var lastPendingUpdate = pendingQueue;\n var firstPendingUpdate = lastPendingUpdate.next;\n lastPendingUpdate.next = null; // Append pending updates to base queue\n\n if (lastBaseUpdate === null) {\n firstBaseUpdate = firstPendingUpdate;\n } else {\n lastBaseUpdate.next = firstPendingUpdate;\n }\n\n lastBaseUpdate = lastPendingUpdate; // If there's a current queue, and it's different from the base queue, then\n // we need to transfer the updates to that queue, too. Because the base\n // queue is a singly-linked list with no cycles, we can append to both\n // lists and take advantage of structural sharing.\n // TODO: Pass `current` as argument\n\n var current = workInProgress.alternate;\n\n if (current !== null) {\n // This is always non-null on a ClassComponent or HostRoot\n var currentQueue = current.updateQueue;\n var currentLastBaseUpdate = currentQueue.lastBaseUpdate;\n\n if (currentLastBaseUpdate !== lastBaseUpdate) {\n if (currentLastBaseUpdate === null) {\n currentQueue.firstBaseUpdate = firstPendingUpdate;\n } else {\n currentLastBaseUpdate.next = firstPendingUpdate;\n }\n\n currentQueue.lastBaseUpdate = lastPendingUpdate;\n }\n }\n } // These values may change as we process the queue.\n\n\n if (firstBaseUpdate !== null) {\n // Iterate through the list of updates to compute the result.\n var newState = queue.baseState; // TODO: Don't need to accumulate this. Instead, we can remove renderLanes\n // from the original lanes.\n\n var newLanes = NoLanes;\n var newBaseState = null;\n var newFirstBaseUpdate = null;\n var newLastBaseUpdate = null;\n var update = firstBaseUpdate;\n\n do {\n var updateLane = update.lane;\n var updateEventTime = update.eventTime;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n eventTime: updateEventTime,\n lane: updateLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n\n if (newLastBaseUpdate === null) {\n newFirstBaseUpdate = newLastBaseUpdate = clone;\n newBaseState = newState;\n } else {\n newLastBaseUpdate = newLastBaseUpdate.next = clone;\n } // Update the remaining priority in the queue.\n\n\n newLanes = mergeLanes(newLanes, updateLane);\n } else {\n // This update does have sufficient priority.\n if (newLastBaseUpdate !== null) {\n var _clone = {\n eventTime: updateEventTime,\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n tag: update.tag,\n payload: update.payload,\n callback: update.callback,\n next: null\n };\n newLastBaseUpdate = newLastBaseUpdate.next = _clone;\n } // Process this update.\n\n\n newState = getStateFromUpdate(workInProgress, queue, update, newState, props, instance);\n var callback = update.callback;\n\n if (callback !== null) {\n workInProgress.flags |= Callback;\n var effects = queue.effects;\n\n if (effects === null) {\n queue.effects = [update];\n } else {\n effects.push(update);\n }\n }\n }\n\n update = update.next;\n\n if (update === null) {\n pendingQueue = queue.shared.pending;\n\n if (pendingQueue === null) {\n break;\n } else {\n // An update was scheduled from inside a reducer. Add the new\n // pending updates to the end of the list and keep processing.\n var _lastPendingUpdate = pendingQueue; // Intentionally unsound. Pending updates form a circular list, but we\n // unravel them when transferring them to the base queue.\n\n var _firstPendingUpdate = _lastPendingUpdate.next;\n _lastPendingUpdate.next = null;\n update = _firstPendingUpdate;\n queue.lastBaseUpdate = _lastPendingUpdate;\n queue.shared.pending = null;\n }\n }\n } while (true);\n\n if (newLastBaseUpdate === null) {\n newBaseState = newState;\n }\n\n queue.baseState = newBaseState;\n queue.firstBaseUpdate = newFirstBaseUpdate;\n queue.lastBaseUpdate = newLastBaseUpdate; // Set the remaining expiration time to be whatever is remaining in the queue.\n // This should be fine because the only two other things that contribute to\n // expiration time are props and context. We're already in the middle of the\n // begin phase by the time we start processing the queue, so we've already\n // dealt with the props. Context in components that specify\n // shouldComponentUpdate is tricky; but we'll have to account for\n // that regardless.\n\n markSkippedUpdateLanes(newLanes);\n workInProgress.lanes = newLanes;\n workInProgress.memoizedState = newState;\n }\n\n {\n currentlyProcessingQueue = null;\n }\n}\n\nfunction callCallback(callback, context) {\n if (!(typeof callback === 'function')) {\n {\n throw Error( \"Invalid argument passed as callback. Expected a function. Instead received: \" + callback );\n }\n }\n\n callback.call(context);\n}\n\nfunction resetHasForceUpdateBeforeProcessing() {\n hasForceUpdate = false;\n}\nfunction checkHasForceUpdateAfterProcessing() {\n return hasForceUpdate;\n}\nfunction commitUpdateQueue(finishedWork, finishedQueue, instance) {\n // Commit the effects\n var effects = finishedQueue.effects;\n finishedQueue.effects = null;\n\n if (effects !== null) {\n for (var i = 0; i < effects.length; i++) {\n var effect = effects[i];\n var callback = effect.callback;\n\n if (callback !== null) {\n effect.callback = null;\n callCallback(callback, instance);\n }\n }\n }\n}\n\nvar fakeInternalInstance = {};\nvar isArray = Array.isArray; // React.Component uses a shared frozen object by default.\n// We'll use it to determine whether we need to initialize legacy refs.\n\nvar emptyRefsObject = new React.Component().refs;\nvar didWarnAboutStateAssignmentForComponent;\nvar didWarnAboutUninitializedState;\nvar didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate;\nvar didWarnAboutLegacyLifecyclesAndDerivedState;\nvar didWarnAboutUndefinedDerivedState;\nvar warnOnUndefinedDerivedState;\nvar warnOnInvalidCallback;\nvar didWarnAboutDirectlyAssigningPropsToState;\nvar didWarnAboutContextTypeAndContextTypes;\nvar didWarnAboutInvalidateContextType;\n\n{\n didWarnAboutStateAssignmentForComponent = new Set();\n didWarnAboutUninitializedState = new Set();\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate = new Set();\n didWarnAboutLegacyLifecyclesAndDerivedState = new Set();\n didWarnAboutDirectlyAssigningPropsToState = new Set();\n didWarnAboutUndefinedDerivedState = new Set();\n didWarnAboutContextTypeAndContextTypes = new Set();\n didWarnAboutInvalidateContextType = new Set();\n var didWarnOnInvalidCallback = new Set();\n\n warnOnInvalidCallback = function (callback, callerName) {\n if (callback === null || typeof callback === 'function') {\n return;\n }\n\n var key = callerName + '_' + callback;\n\n if (!didWarnOnInvalidCallback.has(key)) {\n didWarnOnInvalidCallback.add(key);\n\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n };\n\n warnOnUndefinedDerivedState = function (type, partialState) {\n if (partialState === undefined) {\n var componentName = getComponentName(type) || 'Component';\n\n if (!didWarnAboutUndefinedDerivedState.has(componentName)) {\n didWarnAboutUndefinedDerivedState.add(componentName);\n\n error('%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', componentName);\n }\n }\n }; // This is so gross but it's at least non-critical and can be removed if\n // it causes problems. This is meant to give a nicer error message for\n // ReactDOM15.unstable_renderSubtreeIntoContainer(reactDOM16Component,\n // ...)) which otherwise throws a \"_processChildContext is not a function\"\n // exception.\n\n\n Object.defineProperty(fakeInternalInstance, '_processChildContext', {\n enumerable: false,\n value: function () {\n {\n {\n throw Error( \"_processChildContext is not available in React 16+. This likely means you have multiple copies of React and are attempting to nest a React 15 tree inside a React 16 tree using unstable_renderSubtreeIntoContainer, which isn't supported. Try to make sure you have only one copy of React (and ideally, switch to ReactDOM.createPortal).\" );\n }\n }\n }\n });\n Object.freeze(fakeInternalInstance);\n}\n\nfunction applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, nextProps) {\n var prevState = workInProgress.memoizedState;\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n getDerivedStateFromProps(nextProps, prevState);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var partialState = getDerivedStateFromProps(nextProps, prevState);\n\n {\n warnOnUndefinedDerivedState(ctor, partialState);\n } // Merge the partial state and the previous state.\n\n\n var memoizedState = partialState === null || partialState === undefined ? prevState : _assign({}, prevState, partialState);\n workInProgress.memoizedState = memoizedState; // Once the update queue is empty, persist the derived state onto the\n // base state.\n\n if (workInProgress.lanes === NoLanes) {\n // Queue is always non-null for classes\n var updateQueue = workInProgress.updateQueue;\n updateQueue.baseState = memoizedState;\n }\n}\nvar classComponentUpdater = {\n isMounted: isMounted,\n enqueueSetState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'setState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueReplaceState: function (inst, payload, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ReplaceState;\n update.payload = payload;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'replaceState');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n },\n enqueueForceUpdate: function (inst, callback) {\n var fiber = get(inst);\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = createUpdate(eventTime, lane);\n update.tag = ForceUpdate;\n\n if (callback !== undefined && callback !== null) {\n {\n warnOnInvalidCallback(callback, 'forceUpdate');\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(fiber, update);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n};\n\nfunction checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext) {\n var instance = workInProgress.stateNode;\n\n if (typeof instance.shouldComponentUpdate === 'function') {\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n // Invoke the function an extra time to help detect side-effects.\n instance.shouldComponentUpdate(newProps, newState, nextContext);\n } finally {\n reenableLogs();\n }\n }\n }\n\n var shouldUpdate = instance.shouldComponentUpdate(newProps, newState, nextContext);\n\n {\n if (shouldUpdate === undefined) {\n error('%s.shouldComponentUpdate(): Returned undefined instead of a ' + 'boolean value. Make sure to return true or false.', getComponentName(ctor) || 'Component');\n }\n }\n\n return shouldUpdate;\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent) {\n return !shallowEqual(oldProps, newProps) || !shallowEqual(oldState, newState);\n }\n\n return true;\n}\n\nfunction checkClassInstance(workInProgress, ctor, newProps) {\n var instance = workInProgress.stateNode;\n\n {\n var name = getComponentName(ctor) || 'Component';\n var renderPresent = instance.render;\n\n if (!renderPresent) {\n if (ctor.prototype && typeof ctor.prototype.render === 'function') {\n error('%s(...): No `render` method found on the returned component ' + 'instance: did you accidentally return an object from the constructor?', name);\n } else {\n error('%s(...): No `render` method found on the returned component ' + 'instance: you may have forgotten to define `render`.', name);\n }\n }\n\n if (instance.getInitialState && !instance.getInitialState.isReactClassApproved && !instance.state) {\n error('getInitialState was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Did you mean to define a state property instead?', name);\n }\n\n if (instance.getDefaultProps && !instance.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps was defined on %s, a plain JavaScript class. ' + 'This is only supported for classes created using React.createClass. ' + 'Use a static property to define defaultProps instead.', name);\n }\n\n if (instance.propTypes) {\n error('propTypes was defined as an instance property on %s. Use a static ' + 'property to define propTypes instead.', name);\n }\n\n if (instance.contextType) {\n error('contextType was defined as an instance property on %s. Use a static ' + 'property to define contextType instead.', name);\n }\n\n {\n if (instance.contextTypes) {\n error('contextTypes was defined as an instance property on %s. Use a static ' + 'property to define contextTypes instead.', name);\n }\n\n if (ctor.contextType && ctor.contextTypes && !didWarnAboutContextTypeAndContextTypes.has(ctor)) {\n didWarnAboutContextTypeAndContextTypes.add(ctor);\n\n error('%s declares both contextTypes and contextType static properties. ' + 'The legacy contextTypes property will be ignored.', name);\n }\n }\n\n if (typeof instance.componentShouldUpdate === 'function') {\n error('%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', name);\n }\n\n if (ctor.prototype && ctor.prototype.isPureReactComponent && typeof instance.shouldComponentUpdate !== 'undefined') {\n error('%s has a method called shouldComponentUpdate(). ' + 'shouldComponentUpdate should not be used when extending React.PureComponent. ' + 'Please extend React.Component if shouldComponentUpdate is used.', getComponentName(ctor) || 'A pure component');\n }\n\n if (typeof instance.componentDidUnmount === 'function') {\n error('%s has a method called ' + 'componentDidUnmount(). But there is no such lifecycle method. ' + 'Did you mean componentWillUnmount()?', name);\n }\n\n if (typeof instance.componentDidReceiveProps === 'function') {\n error('%s has a method called ' + 'componentDidReceiveProps(). But there is no such lifecycle method. ' + 'If you meant to update the state in response to changing props, ' + 'use componentWillReceiveProps(). If you meant to fetch data or ' + 'run side-effects or mutations after React has updated the UI, use componentDidUpdate().', name);\n }\n\n if (typeof instance.componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', name);\n }\n\n if (typeof instance.UNSAFE_componentWillRecieveProps === 'function') {\n error('%s has a method called ' + 'UNSAFE_componentWillRecieveProps(). Did you mean UNSAFE_componentWillReceiveProps()?', name);\n }\n\n var hasMutatedProps = instance.props !== newProps;\n\n if (instance.props !== undefined && hasMutatedProps) {\n error('%s(...): When calling super() in `%s`, make sure to pass ' + \"up the same props that your component's constructor was passed.\", name, name);\n }\n\n if (instance.defaultProps) {\n error('Setting defaultProps as an instance property on %s is not supported and will be ignored.' + ' Instead, define defaultProps as a static property on %s.', name, name);\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function' && typeof instance.componentDidUpdate !== 'function' && !didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.has(ctor)) {\n didWarnAboutGetSnapshotBeforeUpdateWithoutDidUpdate.add(ctor);\n\n error('%s: getSnapshotBeforeUpdate() should be used with componentDidUpdate(). ' + 'This component defines getSnapshotBeforeUpdate() only.', getComponentName(ctor));\n }\n\n if (typeof instance.getDerivedStateFromProps === 'function') {\n error('%s: getDerivedStateFromProps() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof instance.getDerivedStateFromError === 'function') {\n error('%s: getDerivedStateFromError() is defined as an instance method ' + 'and will be ignored. Instead, declare it as a static method.', name);\n }\n\n if (typeof ctor.getSnapshotBeforeUpdate === 'function') {\n error('%s: getSnapshotBeforeUpdate() is defined as a static method ' + 'and will be ignored. Instead, declare it as an instance method.', name);\n }\n\n var _state = instance.state;\n\n if (_state && (typeof _state !== 'object' || isArray(_state))) {\n error('%s.state: must be set to an object or null', name);\n }\n\n if (typeof instance.getChildContext === 'function' && typeof ctor.childContextTypes !== 'object') {\n error('%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', name);\n }\n }\n}\n\nfunction adoptClassInstance(workInProgress, instance) {\n instance.updater = classComponentUpdater;\n workInProgress.stateNode = instance; // The instance needs access to the fiber so that it can schedule updates\n\n set(instance, workInProgress);\n\n {\n instance._reactInternalInstance = fakeInternalInstance;\n }\n}\n\nfunction constructClassInstance(workInProgress, ctor, props) {\n var isLegacyContextConsumer = false;\n var unmaskedContext = emptyContextObject;\n var context = emptyContextObject;\n var contextType = ctor.contextType;\n\n {\n if ('contextType' in ctor) {\n var isValid = // Allow null for conditional declaration\n contextType === null || contextType !== undefined && contextType.$$typeof === REACT_CONTEXT_TYPE && contextType._context === undefined; // Not a <Context.Consumer>\n\n if (!isValid && !didWarnAboutInvalidateContextType.has(ctor)) {\n didWarnAboutInvalidateContextType.add(ctor);\n var addendum = '';\n\n if (contextType === undefined) {\n addendum = ' However, it is set to undefined. ' + 'This can be caused by a typo or by mixing up named and default imports. ' + 'This can also happen due to a circular dependency, so ' + 'try moving the createContext() call to a separate file.';\n } else if (typeof contextType !== 'object') {\n addendum = ' However, it is set to a ' + typeof contextType + '.';\n } else if (contextType.$$typeof === REACT_PROVIDER_TYPE) {\n addendum = ' Did you accidentally pass the Context.Provider instead?';\n } else if (contextType._context !== undefined) {\n // <Context.Consumer>\n addendum = ' Did you accidentally pass the Context.Consumer instead?';\n } else {\n addendum = ' However, it is set to an object with keys {' + Object.keys(contextType).join(', ') + '}.';\n }\n\n error('%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext().%s', getComponentName(ctor) || 'Component', addendum);\n }\n }\n }\n\n if (typeof contextType === 'object' && contextType !== null) {\n context = readContext(contextType);\n } else {\n unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n var contextTypes = ctor.contextTypes;\n isLegacyContextConsumer = contextTypes !== null && contextTypes !== undefined;\n context = isLegacyContextConsumer ? getMaskedContext(workInProgress, unmaskedContext) : emptyContextObject;\n } // Instantiate twice to help detect side-effects.\n\n\n {\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n new ctor(props, context); // eslint-disable-line no-new\n } finally {\n reenableLogs();\n }\n }\n }\n\n var instance = new ctor(props, context);\n var state = workInProgress.memoizedState = instance.state !== null && instance.state !== undefined ? instance.state : null;\n adoptClassInstance(workInProgress, instance);\n\n {\n if (typeof ctor.getDerivedStateFromProps === 'function' && state === null) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutUninitializedState.has(componentName)) {\n didWarnAboutUninitializedState.add(componentName);\n\n error('`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, instance.state === null ? 'null' : 'undefined', componentName);\n }\n } // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Warn about these lifecycles if they are present.\n // Don't warn about react-lifecycles-compat polyfilled methods though.\n\n\n if (typeof ctor.getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function') {\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n\n if (typeof instance.componentWillMount === 'function' && instance.componentWillMount.__suppressDeprecationWarning !== true) {\n foundWillMountName = 'componentWillMount';\n } else if (typeof instance.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n\n if (typeof instance.componentWillReceiveProps === 'function' && instance.componentWillReceiveProps.__suppressDeprecationWarning !== true) {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n\n if (typeof instance.componentWillUpdate === 'function' && instance.componentWillUpdate.__suppressDeprecationWarning !== true) {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n\n if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) {\n var _componentName = getComponentName(ctor) || 'Component';\n\n var newApiName = typeof ctor.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()';\n\n if (!didWarnAboutLegacyLifecyclesAndDerivedState.has(_componentName)) {\n didWarnAboutLegacyLifecyclesAndDerivedState.add(_componentName);\n\n error('Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' + '%s uses %s but also contains the following legacy lifecycles:%s%s%s\\n\\n' + 'The above lifecycles should be removed. Learn more about this warning here:\\n' + 'https://reactjs.org/link/unsafe-component-lifecycles', _componentName, newApiName, foundWillMountName !== null ? \"\\n \" + foundWillMountName : '', foundWillReceivePropsName !== null ? \"\\n \" + foundWillReceivePropsName : '', foundWillUpdateName !== null ? \"\\n \" + foundWillUpdateName : '');\n }\n }\n }\n } // Cache unmasked context so we can avoid recreating masked context unless necessary.\n // ReactFiberContext usually updates this cache but can't for newly-created instances.\n\n\n if (isLegacyContextConsumer) {\n cacheContext(workInProgress, unmaskedContext, context);\n }\n\n return instance;\n}\n\nfunction callComponentWillMount(workInProgress, instance) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n\n if (oldState !== instance.state) {\n {\n error('%s.componentWillMount(): Assigning directly to this.state is ' + \"deprecated (except inside a component's \" + 'constructor). Use setState instead.', getComponentName(workInProgress.type) || 'Component');\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n}\n\nfunction callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext) {\n var oldState = instance.state;\n\n if (typeof instance.componentWillReceiveProps === 'function') {\n instance.componentWillReceiveProps(newProps, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillReceiveProps === 'function') {\n instance.UNSAFE_componentWillReceiveProps(newProps, nextContext);\n }\n\n if (instance.state !== oldState) {\n {\n var componentName = getComponentName(workInProgress.type) || 'Component';\n\n if (!didWarnAboutStateAssignmentForComponent.has(componentName)) {\n didWarnAboutStateAssignmentForComponent.add(componentName);\n\n error('%s.componentWillReceiveProps(): Assigning directly to ' + \"this.state is deprecated (except inside a component's \" + 'constructor). Use setState instead.', componentName);\n }\n }\n\n classComponentUpdater.enqueueReplaceState(instance, instance.state, null);\n }\n} // Invokes the mount life-cycles on a previously never rendered instance.\n\n\nfunction mountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n {\n checkClassInstance(workInProgress, ctor, newProps);\n }\n\n var instance = workInProgress.stateNode;\n instance.props = newProps;\n instance.state = workInProgress.memoizedState;\n instance.refs = emptyRefsObject;\n initializeUpdateQueue(workInProgress);\n var contextType = ctor.contextType;\n\n if (typeof contextType === 'object' && contextType !== null) {\n instance.context = readContext(contextType);\n } else {\n var unmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n instance.context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n {\n if (instance.state === newProps) {\n var componentName = getComponentName(ctor) || 'Component';\n\n if (!didWarnAboutDirectlyAssigningPropsToState.has(componentName)) {\n didWarnAboutDirectlyAssigningPropsToState.add(componentName);\n\n error('%s: It is not recommended to assign props directly to state ' + \"because updates to props won't be reflected in state. \" + 'In most cases, it is better to use props directly.', componentName);\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, instance);\n }\n\n {\n ReactStrictModeWarnings.recordUnsafeLifecycleWarnings(workInProgress, instance);\n }\n }\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n instance.state = workInProgress.memoizedState;\n } // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n\n if (typeof ctor.getDerivedStateFromProps !== 'function' && typeof instance.getSnapshotBeforeUpdate !== 'function' && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n callComponentWillMount(workInProgress, instance); // If we had additional state updates during this life-cycle, let's\n // process them now.\n\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n instance.state = workInProgress.memoizedState;\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n}\n\nfunction resumeMountClassInstance(workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n var oldProps = workInProgress.memoizedProps;\n instance.props = oldProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextLegacyUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextLegacyUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (oldProps !== newProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (oldProps === newProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillMount === 'function' || typeof instance.componentWillMount === 'function')) {\n if (typeof instance.componentWillMount === 'function') {\n instance.componentWillMount();\n }\n\n if (typeof instance.UNSAFE_componentWillMount === 'function') {\n instance.UNSAFE_componentWillMount();\n }\n }\n\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidMount === 'function') {\n workInProgress.flags |= Update;\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n} // Invokes the update life-cycles and returns false if it shouldn't rerender.\n\n\nfunction updateClassInstance(current, workInProgress, ctor, newProps, renderLanes) {\n var instance = workInProgress.stateNode;\n cloneUpdateQueue(current, workInProgress);\n var unresolvedOldProps = workInProgress.memoizedProps;\n var oldProps = workInProgress.type === workInProgress.elementType ? unresolvedOldProps : resolveDefaultProps(workInProgress.type, unresolvedOldProps);\n instance.props = oldProps;\n var unresolvedNewProps = workInProgress.pendingProps;\n var oldContext = instance.context;\n var contextType = ctor.contextType;\n var nextContext = emptyContextObject;\n\n if (typeof contextType === 'object' && contextType !== null) {\n nextContext = readContext(contextType);\n } else {\n var nextUnmaskedContext = getUnmaskedContext(workInProgress, ctor, true);\n nextContext = getMaskedContext(workInProgress, nextUnmaskedContext);\n }\n\n var getDerivedStateFromProps = ctor.getDerivedStateFromProps;\n var hasNewLifecycles = typeof getDerivedStateFromProps === 'function' || typeof instance.getSnapshotBeforeUpdate === 'function'; // Note: During these life-cycles, instance.props/instance.state are what\n // ever the previously attempted to render - not the \"current\". However,\n // during componentDidUpdate we pass the \"current\" props.\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillReceiveProps === 'function' || typeof instance.componentWillReceiveProps === 'function')) {\n if (unresolvedOldProps !== unresolvedNewProps || oldContext !== nextContext) {\n callComponentWillReceiveProps(workInProgress, instance, newProps, nextContext);\n }\n }\n\n resetHasForceUpdateBeforeProcessing();\n var oldState = workInProgress.memoizedState;\n var newState = instance.state = oldState;\n processUpdateQueue(workInProgress, newProps, instance, renderLanes);\n newState = workInProgress.memoizedState;\n\n if (unresolvedOldProps === unresolvedNewProps && oldState === newState && !hasContextChanged() && !checkHasForceUpdateAfterProcessing()) {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n }\n\n return false;\n }\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, ctor, getDerivedStateFromProps, newProps);\n newState = workInProgress.memoizedState;\n }\n\n var shouldUpdate = checkHasForceUpdateAfterProcessing() || checkShouldComponentUpdate(workInProgress, ctor, oldProps, newProps, oldState, newState, nextContext);\n\n if (shouldUpdate) {\n // In order to support react-lifecycles-compat polyfilled components,\n // Unsafe lifecycles should not be invoked for components using the new APIs.\n if (!hasNewLifecycles && (typeof instance.UNSAFE_componentWillUpdate === 'function' || typeof instance.componentWillUpdate === 'function')) {\n if (typeof instance.componentWillUpdate === 'function') {\n instance.componentWillUpdate(newProps, newState, nextContext);\n }\n\n if (typeof instance.UNSAFE_componentWillUpdate === 'function') {\n instance.UNSAFE_componentWillUpdate(newProps, newState, nextContext);\n }\n }\n\n if (typeof instance.componentDidUpdate === 'function') {\n workInProgress.flags |= Update;\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n workInProgress.flags |= Snapshot;\n }\n } else {\n // If an update was already in progress, we should schedule an Update\n // effect even though we're bailing out, so that cWU/cDU are called.\n if (typeof instance.componentDidUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Update;\n }\n }\n\n if (typeof instance.getSnapshotBeforeUpdate === 'function') {\n if (unresolvedOldProps !== current.memoizedProps || oldState !== current.memoizedState) {\n workInProgress.flags |= Snapshot;\n }\n } // If shouldComponentUpdate returned false, we should still update the\n // memoized props/state to indicate that this work can be reused.\n\n\n workInProgress.memoizedProps = newProps;\n workInProgress.memoizedState = newState;\n } // Update the existing instance's state, props, and context pointers even\n // if shouldComponentUpdate returns false.\n\n\n instance.props = newProps;\n instance.state = newState;\n instance.context = nextContext;\n return shouldUpdate;\n}\n\nvar didWarnAboutMaps;\nvar didWarnAboutGenerators;\nvar didWarnAboutStringRefs;\nvar ownerHasKeyUseWarning;\nvar ownerHasFunctionTypeWarning;\n\nvar warnForMissingKey = function (child, returnFiber) {};\n\n{\n didWarnAboutMaps = false;\n didWarnAboutGenerators = false;\n didWarnAboutStringRefs = {};\n /**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n ownerHasKeyUseWarning = {};\n ownerHasFunctionTypeWarning = {};\n\n warnForMissingKey = function (child, returnFiber) {\n if (child === null || typeof child !== 'object') {\n return;\n }\n\n if (!child._store || child._store.validated || child.key != null) {\n return;\n }\n\n if (!(typeof child._store === 'object')) {\n {\n throw Error( \"React Component in warnForMissingKey should have a _store. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n child._store.validated = true;\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasKeyUseWarning[componentName]) {\n return;\n }\n\n ownerHasKeyUseWarning[componentName] = true;\n\n error('Each child in a list should have a unique ' + '\"key\" prop. See https://reactjs.org/link/warning-keys for ' + 'more information.');\n };\n}\n\nvar isArray$1 = Array.isArray;\n\nfunction coerceRef(returnFiber, current, element) {\n var mixedRef = element.ref;\n\n if (mixedRef !== null && typeof mixedRef !== 'function' && typeof mixedRef !== 'object') {\n {\n // TODO: Clean this up once we turn on the string ref warning for\n // everyone, because the strict mode case will no longer be relevant\n if ((returnFiber.mode & StrictMode || warnAboutStringRefs) && // We warn in ReactElement.js if owner and self are equal for string refs\n // because these cannot be automatically converted to an arrow function\n // using a codemod. Therefore, we don't have to warn about string refs again.\n !(element._owner && element._self && element._owner.stateNode !== element._self)) {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (!didWarnAboutStringRefs[componentName]) {\n {\n error('A string ref, \"%s\", has been found within a strict mode tree. ' + 'String refs are a source of potential bugs and should be avoided. ' + 'We recommend using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', mixedRef);\n }\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n\n if (element._owner) {\n var owner = element._owner;\n var inst;\n\n if (owner) {\n var ownerFiber = owner;\n\n if (!(ownerFiber.tag === ClassComponent)) {\n {\n throw Error( \"Function components cannot have string refs. We recommend using useRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref\" );\n }\n }\n\n inst = ownerFiber.stateNode;\n }\n\n if (!inst) {\n {\n throw Error( \"Missing owner for string ref \" + mixedRef + \". This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var stringRef = '' + mixedRef; // Check if previous string ref matches new string ref\n\n if (current !== null && current.ref !== null && typeof current.ref === 'function' && current.ref._stringRef === stringRef) {\n return current.ref;\n }\n\n var ref = function (value) {\n var refs = inst.refs;\n\n if (refs === emptyRefsObject) {\n // This is a lazy pooled frozen object, so we need to initialize.\n refs = inst.refs = {};\n }\n\n if (value === null) {\n delete refs[stringRef];\n } else {\n refs[stringRef] = value;\n }\n };\n\n ref._stringRef = stringRef;\n return ref;\n } else {\n if (!(typeof mixedRef === 'string')) {\n {\n throw Error( \"Expected ref to be a function, a string, an object returned by React.createRef(), or null.\" );\n }\n }\n\n if (!element._owner) {\n {\n throw Error( \"Element ref was specified as a string (\" + mixedRef + \") but no owner was set. This could happen for one of the following reasons:\\n1. You may be adding a ref to a function component\\n2. You may be adding a ref to a component that was not created inside a component's render method\\n3. You have multiple copies of React loaded\\nSee https://reactjs.org/link/refs-must-have-owner for more information.\" );\n }\n }\n }\n }\n\n return mixedRef;\n}\n\nfunction throwOnInvalidObjectType(returnFiber, newChild) {\n if (returnFiber.type !== 'textarea') {\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (Object.prototype.toString.call(newChild) === '[object Object]' ? 'object with keys {' + Object.keys(newChild).join(', ') + '}' : newChild) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n}\n\nfunction warnOnFunctionType(returnFiber) {\n {\n var componentName = getComponentName(returnFiber.type) || 'Component';\n\n if (ownerHasFunctionTypeWarning[componentName]) {\n return;\n }\n\n ownerHasFunctionTypeWarning[componentName] = true;\n\n error('Functions are not valid as a React child. This may happen if ' + 'you return a Component instead of <Component /> from render. ' + 'Or maybe you meant to call this function rather than return it.');\n }\n} // We avoid inlining this to avoid potential deopts from using try/catch.\n// to be able to optimize each path individually by branching early. This needs\n// a compiler or we can do it manually. Helpers that don't need this branching\n// live outside of this function.\n\n\nfunction ChildReconciler(shouldTrackSideEffects) {\n function deleteChild(returnFiber, childToDelete) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return;\n } // Deletions are added in reversed order so we add it to the front.\n // At this point, the return fiber's effect list is empty except for\n // deletions, so we can just append the deletion to the list. The remaining\n // effects aren't added until the complete phase. Once we implement\n // resuming, this may not be true.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n\n childToDelete.nextEffect = null;\n childToDelete.flags = Deletion;\n }\n\n function deleteRemainingChildren(returnFiber, currentFirstChild) {\n if (!shouldTrackSideEffects) {\n // Noop.\n return null;\n } // TODO: For the shouldClone case, this could be micro-optimized a bit by\n // assuming that after the first child we've already added everything.\n\n\n var childToDelete = currentFirstChild;\n\n while (childToDelete !== null) {\n deleteChild(returnFiber, childToDelete);\n childToDelete = childToDelete.sibling;\n }\n\n return null;\n }\n\n function mapRemainingChildren(returnFiber, currentFirstChild) {\n // Add the remaining children to a temporary map so that we can find them by\n // keys quickly. Implicit (null) keys get added to this set with their index\n // instead.\n var existingChildren = new Map();\n var existingChild = currentFirstChild;\n\n while (existingChild !== null) {\n if (existingChild.key !== null) {\n existingChildren.set(existingChild.key, existingChild);\n } else {\n existingChildren.set(existingChild.index, existingChild);\n }\n\n existingChild = existingChild.sibling;\n }\n\n return existingChildren;\n }\n\n function useFiber(fiber, pendingProps) {\n // We currently set sibling to null and index to 0 here because it is easy\n // to forget to do before returning it. E.g. for the single child case.\n var clone = createWorkInProgress(fiber, pendingProps);\n clone.index = 0;\n clone.sibling = null;\n return clone;\n }\n\n function placeChild(newFiber, lastPlacedIndex, newIndex) {\n newFiber.index = newIndex;\n\n if (!shouldTrackSideEffects) {\n // Noop.\n return lastPlacedIndex;\n }\n\n var current = newFiber.alternate;\n\n if (current !== null) {\n var oldIndex = current.index;\n\n if (oldIndex < lastPlacedIndex) {\n // This is a move.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n } else {\n // This item can stay in place.\n return oldIndex;\n }\n } else {\n // This is an insertion.\n newFiber.flags = Placement;\n return lastPlacedIndex;\n }\n }\n\n function placeSingleChild(newFiber) {\n // This is simpler for the single child case. We only need to do a\n // placement for inserting new children.\n if (shouldTrackSideEffects && newFiber.alternate === null) {\n newFiber.flags = Placement;\n }\n\n return newFiber;\n }\n\n function updateTextNode(returnFiber, current, textContent, lanes) {\n if (current === null || current.tag !== HostText) {\n // Insert\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, textContent);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateElement(returnFiber, current, element, lanes) {\n if (current !== null) {\n if (current.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(current, element) )) {\n // Move based on index\n var existing = useFiber(current, element.props);\n existing.ref = coerceRef(returnFiber, current, element);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n } // Insert\n\n\n var created = createFiberFromElement(element, returnFiber.mode, lanes);\n created.ref = coerceRef(returnFiber, current, element);\n created.return = returnFiber;\n return created;\n }\n\n function updatePortal(returnFiber, current, portal, lanes) {\n if (current === null || current.tag !== HostPortal || current.stateNode.containerInfo !== portal.containerInfo || current.stateNode.implementation !== portal.implementation) {\n // Insert\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, portal.children || []);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function updateFragment(returnFiber, current, fragment, lanes, key) {\n if (current === null || current.tag !== Fragment) {\n // Insert\n var created = createFiberFromFragment(fragment, returnFiber.mode, lanes, key);\n created.return = returnFiber;\n return created;\n } else {\n // Update\n var existing = useFiber(current, fragment);\n existing.return = returnFiber;\n return existing;\n }\n }\n\n function createChild(returnFiber, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n var created = createFiberFromText('' + newChild, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _created = createFiberFromElement(newChild, returnFiber.mode, lanes);\n\n _created.ref = coerceRef(returnFiber, null, newChild);\n _created.return = returnFiber;\n return _created;\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _created2 = createFiberFromPortal(newChild, returnFiber.mode, lanes);\n\n _created2.return = returnFiber;\n return _created2;\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _created3 = createFiberFromFragment(newChild, returnFiber.mode, lanes, null);\n\n _created3.return = returnFiber;\n return _created3;\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateSlot(returnFiber, oldFiber, newChild, lanes) {\n // Update the fiber if the keys match, otherwise return null.\n var key = oldFiber !== null ? oldFiber.key : null;\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys. If the previous node is implicitly keyed\n // we can continue to replace it without aborting even if it is not a text\n // node.\n if (key !== null) {\n return null;\n }\n\n return updateTextNode(returnFiber, oldFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n if (newChild.key === key) {\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, oldFiber, newChild.props.children, lanes, key);\n }\n\n return updateElement(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n\n case REACT_PORTAL_TYPE:\n {\n if (newChild.key === key) {\n return updatePortal(returnFiber, oldFiber, newChild, lanes);\n } else {\n return null;\n }\n }\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n if (key !== null) {\n return null;\n }\n\n return updateFragment(returnFiber, oldFiber, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n\n function updateFromMap(existingChildren, returnFiber, newIdx, newChild, lanes) {\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n // Text nodes don't have keys, so we neither have to check the old nor\n // new node for the key. If both are text nodes, they match.\n var matchedFiber = existingChildren.get(newIdx) || null;\n return updateTextNode(returnFiber, matchedFiber, '' + newChild, lanes);\n }\n\n if (typeof newChild === 'object' && newChild !== null) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n {\n var _matchedFiber = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n if (newChild.type === REACT_FRAGMENT_TYPE) {\n return updateFragment(returnFiber, _matchedFiber, newChild.props.children, lanes, newChild.key);\n }\n\n return updateElement(returnFiber, _matchedFiber, newChild, lanes);\n }\n\n case REACT_PORTAL_TYPE:\n {\n var _matchedFiber2 = existingChildren.get(newChild.key === null ? newIdx : newChild.key) || null;\n\n return updatePortal(returnFiber, _matchedFiber2, newChild, lanes);\n }\n\n }\n\n if (isArray$1(newChild) || getIteratorFn(newChild)) {\n var _matchedFiber3 = existingChildren.get(newIdx) || null;\n\n return updateFragment(returnFiber, _matchedFiber3, newChild, lanes, null);\n }\n\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n return null;\n }\n /**\n * Warns if there is a duplicate or missing key\n */\n\n\n function warnOnInvalidKey(child, knownKeys, returnFiber) {\n {\n if (typeof child !== 'object' || child === null) {\n return knownKeys;\n }\n\n switch (child.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n warnForMissingKey(child, returnFiber);\n var key = child.key;\n\n if (typeof key !== 'string') {\n break;\n }\n\n if (knownKeys === null) {\n knownKeys = new Set();\n knownKeys.add(key);\n break;\n }\n\n if (!knownKeys.has(key)) {\n knownKeys.add(key);\n break;\n }\n\n error('Encountered two children with the same key, `%s`. ' + 'Keys should be unique so that components maintain their identity ' + 'across updates. Non-unique keys may cause children to be ' + 'duplicated and/or omitted — the behavior is unsupported and ' + 'could change in a future version.', key);\n\n break;\n }\n }\n\n return knownKeys;\n }\n\n function reconcileChildrenArray(returnFiber, currentFirstChild, newChildren, lanes) {\n // This algorithm can't optimize by searching from both ends since we\n // don't have backpointers on fibers. I'm trying to see how far we can get\n // with that model. If it ends up not being worth the tradeoffs, we can\n // add it later.\n // Even with a two ended optimization, we'd want to optimize for the case\n // where there are few changes and brute force the comparison instead of\n // going for the Map. It'd like to explore hitting that path first in\n // forward-only mode and only go for the Map once we notice that we need\n // lots of look ahead. This doesn't handle reversal as well as two ended\n // search but that's unusual. Besides, for the two ended optimization to\n // work on Iterables, we'd need to copy the whole set.\n // In this first iteration, we'll just live with hitting the bad case\n // (adding everything to a Map) in for every insert/move.\n // If you change this code, also update reconcileChildrenIterator() which\n // uses the same algorithm.\n {\n // First, validate keys.\n var knownKeys = null;\n\n for (var i = 0; i < newChildren.length; i++) {\n var child = newChildren[i];\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n\n for (; oldFiber !== null && newIdx < newChildren.length; newIdx++) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, newChildren[newIdx], lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (newIdx === newChildren.length) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber = createChild(returnFiber, newChildren[newIdx], lanes);\n\n if (_newFiber === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber;\n } else {\n previousNewFiber.sibling = _newFiber;\n }\n\n previousNewFiber = _newFiber;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; newIdx < newChildren.length; newIdx++) {\n var _newFiber2 = updateFromMap(existingChildren, returnFiber, newIdx, newChildren[newIdx], lanes);\n\n if (_newFiber2 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber2.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber2.key === null ? newIdx : _newFiber2.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber2, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber2;\n } else {\n previousNewFiber.sibling = _newFiber2;\n }\n\n previousNewFiber = _newFiber2;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileChildrenIterator(returnFiber, currentFirstChild, newChildrenIterable, lanes) {\n // This is the same implementation as reconcileChildrenArray(),\n // but using the iterator instead.\n var iteratorFn = getIteratorFn(newChildrenIterable);\n\n if (!(typeof iteratorFn === 'function')) {\n {\n throw Error( \"An object is not an iterable. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n {\n // We don't support rendering Generators because it's a mutation.\n // See https://github.com/facebook/react/issues/12995\n if (typeof Symbol === 'function' && // $FlowFixMe Flow doesn't know about toStringTag\n newChildrenIterable[Symbol.toStringTag] === 'Generator') {\n if (!didWarnAboutGenerators) {\n error('Using Generators as children is unsupported and will likely yield ' + 'unexpected results because enumerating a generator mutates it. ' + 'You may convert it to an array with `Array.from()` or the ' + '`[...spread]` operator before rendering. Keep in mind ' + 'you might need to polyfill these features for older browsers.');\n }\n\n didWarnAboutGenerators = true;\n } // Warn about using Maps as children\n\n\n if (newChildrenIterable.entries === iteratorFn) {\n if (!didWarnAboutMaps) {\n error('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n } // First, validate keys.\n // We'll get a different iterator later for the main pass.\n\n\n var _newChildren = iteratorFn.call(newChildrenIterable);\n\n if (_newChildren) {\n var knownKeys = null;\n\n var _step = _newChildren.next();\n\n for (; !_step.done; _step = _newChildren.next()) {\n var child = _step.value;\n knownKeys = warnOnInvalidKey(child, knownKeys, returnFiber);\n }\n }\n }\n\n var newChildren = iteratorFn.call(newChildrenIterable);\n\n if (!(newChildren != null)) {\n {\n throw Error( \"An iterable object provided no iterator.\" );\n }\n }\n\n var resultingFirstChild = null;\n var previousNewFiber = null;\n var oldFiber = currentFirstChild;\n var lastPlacedIndex = 0;\n var newIdx = 0;\n var nextOldFiber = null;\n var step = newChildren.next();\n\n for (; oldFiber !== null && !step.done; newIdx++, step = newChildren.next()) {\n if (oldFiber.index > newIdx) {\n nextOldFiber = oldFiber;\n oldFiber = null;\n } else {\n nextOldFiber = oldFiber.sibling;\n }\n\n var newFiber = updateSlot(returnFiber, oldFiber, step.value, lanes);\n\n if (newFiber === null) {\n // TODO: This breaks on empty slots like null children. That's\n // unfortunate because it triggers the slow path all the time. We need\n // a better way to communicate whether this was a miss or null,\n // boolean, undefined, etc.\n if (oldFiber === null) {\n oldFiber = nextOldFiber;\n }\n\n break;\n }\n\n if (shouldTrackSideEffects) {\n if (oldFiber && newFiber.alternate === null) {\n // We matched the slot, but we didn't reuse the existing fiber, so we\n // need to delete the existing child.\n deleteChild(returnFiber, oldFiber);\n }\n }\n\n lastPlacedIndex = placeChild(newFiber, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = newFiber;\n } else {\n // TODO: Defer siblings if we're not at the right index for this slot.\n // I.e. if we had null values before, then we want to defer this\n // for each null value. However, we also don't want to call updateSlot\n // with the previous one.\n previousNewFiber.sibling = newFiber;\n }\n\n previousNewFiber = newFiber;\n oldFiber = nextOldFiber;\n }\n\n if (step.done) {\n // We've reached the end of the new children. We can delete the rest.\n deleteRemainingChildren(returnFiber, oldFiber);\n return resultingFirstChild;\n }\n\n if (oldFiber === null) {\n // If we don't have any more existing children we can choose a fast path\n // since the rest will all be insertions.\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber3 = createChild(returnFiber, step.value, lanes);\n\n if (_newFiber3 === null) {\n continue;\n }\n\n lastPlacedIndex = placeChild(_newFiber3, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n // TODO: Move out of the loop. This only happens for the first run.\n resultingFirstChild = _newFiber3;\n } else {\n previousNewFiber.sibling = _newFiber3;\n }\n\n previousNewFiber = _newFiber3;\n }\n\n return resultingFirstChild;\n } // Add all children to a key map for quick lookups.\n\n\n var existingChildren = mapRemainingChildren(returnFiber, oldFiber); // Keep scanning and use the map to restore deleted items as moves.\n\n for (; !step.done; newIdx++, step = newChildren.next()) {\n var _newFiber4 = updateFromMap(existingChildren, returnFiber, newIdx, step.value, lanes);\n\n if (_newFiber4 !== null) {\n if (shouldTrackSideEffects) {\n if (_newFiber4.alternate !== null) {\n // The new fiber is a work in progress, but if there exists a\n // current, that means that we reused the fiber. We need to delete\n // it from the child list so that we don't add it to the deletion\n // list.\n existingChildren.delete(_newFiber4.key === null ? newIdx : _newFiber4.key);\n }\n }\n\n lastPlacedIndex = placeChild(_newFiber4, lastPlacedIndex, newIdx);\n\n if (previousNewFiber === null) {\n resultingFirstChild = _newFiber4;\n } else {\n previousNewFiber.sibling = _newFiber4;\n }\n\n previousNewFiber = _newFiber4;\n }\n }\n\n if (shouldTrackSideEffects) {\n // Any existing children that weren't consumed above were deleted. We need\n // to add them to the deletion list.\n existingChildren.forEach(function (child) {\n return deleteChild(returnFiber, child);\n });\n }\n\n return resultingFirstChild;\n }\n\n function reconcileSingleTextNode(returnFiber, currentFirstChild, textContent, lanes) {\n // There's no need to check for keys on text nodes since we don't have a\n // way to define them.\n if (currentFirstChild !== null && currentFirstChild.tag === HostText) {\n // We already have an existing node so let's just update it and delete\n // the rest.\n deleteRemainingChildren(returnFiber, currentFirstChild.sibling);\n var existing = useFiber(currentFirstChild, textContent);\n existing.return = returnFiber;\n return existing;\n } // The existing first child is not a text node so we need to create one\n // and delete the existing ones.\n\n\n deleteRemainingChildren(returnFiber, currentFirstChild);\n var created = createFiberFromText(textContent, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n }\n\n function reconcileSingleElement(returnFiber, currentFirstChild, element, lanes) {\n var key = element.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n switch (child.tag) {\n case Fragment:\n {\n if (element.type === REACT_FRAGMENT_TYPE) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, element.props.children);\n existing.return = returnFiber;\n\n {\n existing._debugSource = element._source;\n existing._debugOwner = element._owner;\n }\n\n return existing;\n }\n\n break;\n }\n\n case Block:\n\n // We intentionally fallthrough here if enableBlocksAPI is not on.\n // eslint-disable-next-lined no-fallthrough\n\n default:\n {\n if (child.elementType === element.type || ( // Keep this check inline so it only runs on the false path:\n isCompatibleFamilyForHotReloading(child, element) )) {\n deleteRemainingChildren(returnFiber, child.sibling);\n\n var _existing3 = useFiber(child, element.props);\n\n _existing3.ref = coerceRef(returnFiber, child, element);\n _existing3.return = returnFiber;\n\n {\n _existing3._debugSource = element._source;\n _existing3._debugOwner = element._owner;\n }\n\n return _existing3;\n }\n\n break;\n }\n } // Didn't match.\n\n\n deleteRemainingChildren(returnFiber, child);\n break;\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n if (element.type === REACT_FRAGMENT_TYPE) {\n var created = createFiberFromFragment(element.props.children, returnFiber.mode, lanes, element.key);\n created.return = returnFiber;\n return created;\n } else {\n var _created4 = createFiberFromElement(element, returnFiber.mode, lanes);\n\n _created4.ref = coerceRef(returnFiber, currentFirstChild, element);\n _created4.return = returnFiber;\n return _created4;\n }\n }\n\n function reconcileSinglePortal(returnFiber, currentFirstChild, portal, lanes) {\n var key = portal.key;\n var child = currentFirstChild;\n\n while (child !== null) {\n // TODO: If key === null and child.key === null, then this only applies to\n // the first item in the list.\n if (child.key === key) {\n if (child.tag === HostPortal && child.stateNode.containerInfo === portal.containerInfo && child.stateNode.implementation === portal.implementation) {\n deleteRemainingChildren(returnFiber, child.sibling);\n var existing = useFiber(child, portal.children || []);\n existing.return = returnFiber;\n return existing;\n } else {\n deleteRemainingChildren(returnFiber, child);\n break;\n }\n } else {\n deleteChild(returnFiber, child);\n }\n\n child = child.sibling;\n }\n\n var created = createFiberFromPortal(portal, returnFiber.mode, lanes);\n created.return = returnFiber;\n return created;\n } // This API will tag the children with the side-effect of the reconciliation\n // itself. They will be added to the side-effect list as we pass through the\n // children and the parent.\n\n\n function reconcileChildFibers(returnFiber, currentFirstChild, newChild, lanes) {\n // This function is not recursive.\n // If the top level item is an array, we treat it as a set of children,\n // not as a fragment. Nested arrays on the other hand will be treated as\n // fragment nodes. Recursion happens at the normal flow.\n // Handle top level unkeyed fragments as if they were arrays.\n // This leads to an ambiguity between <>{[...]}</> and <>...</>.\n // We treat the ambiguous cases above the same.\n var isUnkeyedTopLevelFragment = typeof newChild === 'object' && newChild !== null && newChild.type === REACT_FRAGMENT_TYPE && newChild.key === null;\n\n if (isUnkeyedTopLevelFragment) {\n newChild = newChild.props.children;\n } // Handle object types\n\n\n var isObject = typeof newChild === 'object' && newChild !== null;\n\n if (isObject) {\n switch (newChild.$$typeof) {\n case REACT_ELEMENT_TYPE:\n return placeSingleChild(reconcileSingleElement(returnFiber, currentFirstChild, newChild, lanes));\n\n case REACT_PORTAL_TYPE:\n return placeSingleChild(reconcileSinglePortal(returnFiber, currentFirstChild, newChild, lanes));\n\n }\n }\n\n if (typeof newChild === 'string' || typeof newChild === 'number') {\n return placeSingleChild(reconcileSingleTextNode(returnFiber, currentFirstChild, '' + newChild, lanes));\n }\n\n if (isArray$1(newChild)) {\n return reconcileChildrenArray(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (getIteratorFn(newChild)) {\n return reconcileChildrenIterator(returnFiber, currentFirstChild, newChild, lanes);\n }\n\n if (isObject) {\n throwOnInvalidObjectType(returnFiber, newChild);\n }\n\n {\n if (typeof newChild === 'function') {\n warnOnFunctionType(returnFiber);\n }\n }\n\n if (typeof newChild === 'undefined' && !isUnkeyedTopLevelFragment) {\n // If the new child is undefined, and the return fiber is a composite\n // component, throw an error. If Fiber return types are disabled,\n // we already threw above.\n switch (returnFiber.tag) {\n case ClassComponent:\n {\n {\n var instance = returnFiber.stateNode;\n\n if (instance.render._isMockFunction) {\n // We allow auto-mocks to proceed as if they're returning null.\n break;\n }\n }\n }\n // Intentionally fall through to the next case, which handles both\n // functions and classes\n // eslint-disable-next-lined no-fallthrough\n\n case Block:\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n {\n {\n throw Error( (getComponentName(returnFiber.type) || 'Component') + \"(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.\" );\n }\n }\n }\n }\n } // Remaining cases are all treated as empty.\n\n\n return deleteRemainingChildren(returnFiber, currentFirstChild);\n }\n\n return reconcileChildFibers;\n}\n\nvar reconcileChildFibers = ChildReconciler(true);\nvar mountChildFibers = ChildReconciler(false);\nfunction cloneChildFibers(current, workInProgress) {\n if (!(current === null || workInProgress.child === current.child)) {\n {\n throw Error( \"Resuming work not yet implemented.\" );\n }\n }\n\n if (workInProgress.child === null) {\n return;\n }\n\n var currentChild = workInProgress.child;\n var newChild = createWorkInProgress(currentChild, currentChild.pendingProps);\n workInProgress.child = newChild;\n newChild.return = workInProgress;\n\n while (currentChild.sibling !== null) {\n currentChild = currentChild.sibling;\n newChild = newChild.sibling = createWorkInProgress(currentChild, currentChild.pendingProps);\n newChild.return = workInProgress;\n }\n\n newChild.sibling = null;\n} // Reset a workInProgress child set to prepare it for a second pass.\n\nfunction resetChildFibers(workInProgress, lanes) {\n var child = workInProgress.child;\n\n while (child !== null) {\n resetWorkInProgress(child, lanes);\n child = child.sibling;\n }\n}\n\nvar NO_CONTEXT = {};\nvar contextStackCursor$1 = createCursor(NO_CONTEXT);\nvar contextFiberStackCursor = createCursor(NO_CONTEXT);\nvar rootInstanceStackCursor = createCursor(NO_CONTEXT);\n\nfunction requiredContext(c) {\n if (!(c !== NO_CONTEXT)) {\n {\n throw Error( \"Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return c;\n}\n\nfunction getRootHostContainer() {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n return rootInstance;\n}\n\nfunction pushHostContainer(fiber, nextRootInstance) {\n // Push current root instance onto the stack;\n // This allows us to reset root when portals are popped.\n push(rootInstanceStackCursor, nextRootInstance, fiber); // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n push(contextFiberStackCursor, fiber, fiber); // Finally, we need to push the host context to the stack.\n // However, we can't just call getRootHostContext() and push it because\n // we'd have a different number of entries on the stack depending on\n // whether getRootHostContext() throws somewhere in renderer code or not.\n // So we push an empty value first. This lets us safely unwind on errors.\n\n push(contextStackCursor$1, NO_CONTEXT, fiber);\n var nextRootContext = getRootHostContext(nextRootInstance); // Now that we know this function doesn't throw, replace it.\n\n pop(contextStackCursor$1, fiber);\n push(contextStackCursor$1, nextRootContext, fiber);\n}\n\nfunction popHostContainer(fiber) {\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n pop(rootInstanceStackCursor, fiber);\n}\n\nfunction getHostContext() {\n var context = requiredContext(contextStackCursor$1.current);\n return context;\n}\n\nfunction pushHostContext(fiber) {\n var rootInstance = requiredContext(rootInstanceStackCursor.current);\n var context = requiredContext(contextStackCursor$1.current);\n var nextContext = getChildHostContext(context, fiber.type); // Don't push this Fiber's context unless it's unique.\n\n if (context === nextContext) {\n return;\n } // Track the context and the Fiber that provided it.\n // This enables us to pop only Fibers that provide unique contexts.\n\n\n push(contextFiberStackCursor, fiber, fiber);\n push(contextStackCursor$1, nextContext, fiber);\n}\n\nfunction popHostContext(fiber) {\n // Do not pop unless this Fiber provided the current context.\n // pushHostContext() only pushes Fibers that provide unique contexts.\n if (contextFiberStackCursor.current !== fiber) {\n return;\n }\n\n pop(contextStackCursor$1, fiber);\n pop(contextFiberStackCursor, fiber);\n}\n\nvar DefaultSuspenseContext = 0; // The Suspense Context is split into two parts. The lower bits is\n// inherited deeply down the subtree. The upper bits only affect\n// this immediate suspense boundary and gets reset each new\n// boundary or suspense list.\n\nvar SubtreeSuspenseContextMask = 1; // Subtree Flags:\n// InvisibleParentSuspenseContext indicates that one of our parent Suspense\n// boundaries is not currently showing visible main content.\n// Either because it is already showing a fallback or is not mounted at all.\n// We can use this to determine if it is desirable to trigger a fallback at\n// the parent. If not, then we might need to trigger undesirable boundaries\n// and/or suspend the commit to avoid hiding the parent content.\n\nvar InvisibleParentSuspenseContext = 1; // Shallow Flags:\n// ForceSuspenseFallback can be used by SuspenseList to force newly added\n// items into their fallback state during one of the render passes.\n\nvar ForceSuspenseFallback = 2;\nvar suspenseStackCursor = createCursor(DefaultSuspenseContext);\nfunction hasSuspenseContext(parentContext, flag) {\n return (parentContext & flag) !== 0;\n}\nfunction setDefaultShallowSuspenseContext(parentContext) {\n return parentContext & SubtreeSuspenseContextMask;\n}\nfunction setShallowSuspenseContext(parentContext, shallowContext) {\n return parentContext & SubtreeSuspenseContextMask | shallowContext;\n}\nfunction addSubtreeSuspenseContext(parentContext, subtreeContext) {\n return parentContext | subtreeContext;\n}\nfunction pushSuspenseContext(fiber, newContext) {\n push(suspenseStackCursor, newContext, fiber);\n}\nfunction popSuspenseContext(fiber) {\n pop(suspenseStackCursor, fiber);\n}\n\nfunction shouldCaptureSuspense(workInProgress, hasInvisibleParent) {\n // If it was the primary children that just suspended, capture and render the\n // fallback. Otherwise, don't capture and bubble to the next boundary.\n var nextState = workInProgress.memoizedState;\n\n if (nextState !== null) {\n if (nextState.dehydrated !== null) {\n // A dehydrated boundary always captures.\n return true;\n }\n\n return false;\n }\n\n var props = workInProgress.memoizedProps; // In order to capture, the Suspense component must have a fallback prop.\n\n if (props.fallback === undefined) {\n return false;\n } // Regular boundaries always capture.\n\n\n if (props.unstable_avoidThisFallback !== true) {\n return true;\n } // If it's a boundary we should avoid, then we prefer to bubble up to the\n // parent boundary if it is currently invisible.\n\n\n if (hasInvisibleParent) {\n return false;\n } // If the parent is not able to handle it, we must handle it.\n\n\n return true;\n}\nfunction findFirstSuspended(row) {\n var node = row;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n var dehydrated = state.dehydrated;\n\n if (dehydrated === null || isSuspenseInstancePending(dehydrated) || isSuspenseInstanceFallback(dehydrated)) {\n return node;\n }\n }\n } else if (node.tag === SuspenseListComponent && // revealOrder undefined can't be trusted because it don't\n // keep track of whether it suspended or not.\n node.memoizedProps.revealOrder !== undefined) {\n var didSuspend = (node.flags & DidCapture) !== NoFlags;\n\n if (didSuspend) {\n return node;\n }\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === row) {\n return null;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === row) {\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n\n return null;\n}\n\nvar NoFlags$1 =\n/* */\n0; // Represents whether effect should fire.\n\nvar HasEffect =\n/* */\n1; // Represents the phase in which the effect (not the clean-up) fires.\n\nvar Layout =\n/* */\n2;\nvar Passive$1 =\n/* */\n4;\n\n// This may have been an insertion or a hydration.\n\nvar hydrationParentFiber = null;\nvar nextHydratableInstance = null;\nvar isHydrating = false;\n\nfunction enterHydrationState(fiber) {\n\n var parentInstance = fiber.stateNode.containerInfo;\n nextHydratableInstance = getFirstHydratableChild(parentInstance);\n hydrationParentFiber = fiber;\n isHydrating = true;\n return true;\n}\n\nfunction deleteHydratableInstance(returnFiber, instance) {\n {\n switch (returnFiber.tag) {\n case HostRoot:\n didNotHydrateContainerInstance(returnFiber.stateNode.containerInfo, instance);\n break;\n\n case HostComponent:\n didNotHydrateInstance(returnFiber.type, returnFiber.memoizedProps, returnFiber.stateNode, instance);\n break;\n }\n }\n\n var childToDelete = createFiberFromHostInstanceForDeletion();\n childToDelete.stateNode = instance;\n childToDelete.return = returnFiber;\n childToDelete.flags = Deletion; // This might seem like it belongs on progressedFirstDeletion. However,\n // these children are not part of the reconciliation list of children.\n // Even if we abort and rereconcile the children, that will try to hydrate\n // again and the nodes are still in the host tree so these will be\n // recreated.\n\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = childToDelete;\n returnFiber.lastEffect = childToDelete;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = childToDelete;\n }\n}\n\nfunction insertNonHydratedInstance(returnFiber, fiber) {\n fiber.flags = fiber.flags & ~Hydrating | Placement;\n\n {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n\n switch (fiber.tag) {\n case HostComponent:\n var type = fiber.type;\n var props = fiber.pendingProps;\n didNotFindHydratableContainerInstance(parentContainer, type);\n break;\n\n case HostText:\n var text = fiber.pendingProps;\n didNotFindHydratableContainerTextInstance(parentContainer, text);\n break;\n }\n\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n\n switch (fiber.tag) {\n case HostComponent:\n var _type = fiber.type;\n var _props = fiber.pendingProps;\n didNotFindHydratableInstance(parentType, parentProps, parentInstance, _type);\n break;\n\n case HostText:\n var _text = fiber.pendingProps;\n didNotFindHydratableTextInstance(parentType, parentProps, parentInstance, _text);\n break;\n\n case SuspenseComponent:\n didNotFindHydratableSuspenseInstance(parentType, parentProps);\n break;\n }\n\n break;\n }\n\n default:\n return;\n }\n }\n}\n\nfunction tryHydrate(fiber, nextInstance) {\n switch (fiber.tag) {\n case HostComponent:\n {\n var type = fiber.type;\n var props = fiber.pendingProps;\n var instance = canHydrateInstance(nextInstance, type);\n\n if (instance !== null) {\n fiber.stateNode = instance;\n return true;\n }\n\n return false;\n }\n\n case HostText:\n {\n var text = fiber.pendingProps;\n var textInstance = canHydrateTextInstance(nextInstance, text);\n\n if (textInstance !== null) {\n fiber.stateNode = textInstance;\n return true;\n }\n\n return false;\n }\n\n case SuspenseComponent:\n {\n\n return false;\n }\n\n default:\n return false;\n }\n}\n\nfunction tryToClaimNextHydratableInstance(fiber) {\n if (!isHydrating) {\n return;\n }\n\n var nextInstance = nextHydratableInstance;\n\n if (!nextInstance) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n }\n\n var firstAttemptedInstance = nextInstance;\n\n if (!tryHydrate(fiber, nextInstance)) {\n // If we can't hydrate this instance let's try the next one.\n // We use this as a heuristic. It's based on intuition and not data so it\n // might be flawed or unnecessary.\n nextInstance = getNextHydratableSibling(firstAttemptedInstance);\n\n if (!nextInstance || !tryHydrate(fiber, nextInstance)) {\n // Nothing to hydrate. Make it an insertion.\n insertNonHydratedInstance(hydrationParentFiber, fiber);\n isHydrating = false;\n hydrationParentFiber = fiber;\n return;\n } // We matched the next one, we'll now assume that the first one was\n // superfluous and we'll delete it. Since we can't eagerly delete it\n // we'll have to schedule a deletion. To do that, this node needs a dummy\n // fiber associated with it.\n\n\n deleteHydratableInstance(hydrationParentFiber, firstAttemptedInstance);\n }\n\n hydrationParentFiber = fiber;\n nextHydratableInstance = getFirstHydratableChild(nextInstance);\n}\n\nfunction prepareToHydrateHostInstance(fiber, rootContainerInstance, hostContext) {\n\n var instance = fiber.stateNode;\n var updatePayload = hydrateInstance(instance, fiber.type, fiber.memoizedProps, rootContainerInstance, hostContext, fiber); // TODO: Type this specific to this type of component.\n\n fiber.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update.\n\n if (updatePayload !== null) {\n return true;\n }\n\n return false;\n}\n\nfunction prepareToHydrateHostTextInstance(fiber) {\n\n var textInstance = fiber.stateNode;\n var textContent = fiber.memoizedProps;\n var shouldUpdate = hydrateTextInstance(textInstance, textContent, fiber);\n\n {\n if (shouldUpdate) {\n // We assume that prepareToHydrateHostTextInstance is called in a context where the\n // hydration parent is the parent host component of this host text.\n var returnFiber = hydrationParentFiber;\n\n if (returnFiber !== null) {\n switch (returnFiber.tag) {\n case HostRoot:\n {\n var parentContainer = returnFiber.stateNode.containerInfo;\n didNotMatchHydratedContainerTextInstance(parentContainer, textInstance, textContent);\n break;\n }\n\n case HostComponent:\n {\n var parentType = returnFiber.type;\n var parentProps = returnFiber.memoizedProps;\n var parentInstance = returnFiber.stateNode;\n didNotMatchHydratedTextInstance(parentType, parentProps, parentInstance, textInstance, textContent);\n break;\n }\n }\n }\n }\n }\n\n return shouldUpdate;\n}\n\nfunction skipPastDehydratedSuspenseInstance(fiber) {\n\n var suspenseState = fiber.memoizedState;\n var suspenseInstance = suspenseState !== null ? suspenseState.dehydrated : null;\n\n if (!suspenseInstance) {\n {\n throw Error( \"Expected to have a hydrated suspense instance. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n return getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance);\n}\n\nfunction popToNextHostParent(fiber) {\n var parent = fiber.return;\n\n while (parent !== null && parent.tag !== HostComponent && parent.tag !== HostRoot && parent.tag !== SuspenseComponent) {\n parent = parent.return;\n }\n\n hydrationParentFiber = parent;\n}\n\nfunction popHydrationState(fiber) {\n\n if (fiber !== hydrationParentFiber) {\n // We're deeper than the current hydration context, inside an inserted\n // tree.\n return false;\n }\n\n if (!isHydrating) {\n // If we're not currently hydrating but we're in a hydration context, then\n // we were an insertion and now need to pop up reenter hydration of our\n // siblings.\n popToNextHostParent(fiber);\n isHydrating = true;\n return false;\n }\n\n var type = fiber.type; // If we have any remaining hydratable nodes, we need to delete them now.\n // We only do this deeper than head and body since they tend to have random\n // other nodes in them. We also ignore components with pure text content in\n // side of them.\n // TODO: Better heuristic.\n\n if (fiber.tag !== HostComponent || type !== 'head' && type !== 'body' && !shouldSetTextContent(type, fiber.memoizedProps)) {\n var nextInstance = nextHydratableInstance;\n\n while (nextInstance) {\n deleteHydratableInstance(fiber, nextInstance);\n nextInstance = getNextHydratableSibling(nextInstance);\n }\n }\n\n popToNextHostParent(fiber);\n\n if (fiber.tag === SuspenseComponent) {\n nextHydratableInstance = skipPastDehydratedSuspenseInstance(fiber);\n } else {\n nextHydratableInstance = hydrationParentFiber ? getNextHydratableSibling(fiber.stateNode) : null;\n }\n\n return true;\n}\n\nfunction resetHydrationState() {\n\n hydrationParentFiber = null;\n nextHydratableInstance = null;\n isHydrating = false;\n}\n\nfunction getIsHydrating() {\n return isHydrating;\n}\n\n// and should be reset before starting a new render.\n// This tracks which mutable sources need to be reset after a render.\n\nvar workInProgressSources = [];\nvar rendererSigil$1;\n\n{\n // Used to detect multiple renderers using the same mutable source.\n rendererSigil$1 = {};\n}\n\nfunction markSourceAsDirty(mutableSource) {\n workInProgressSources.push(mutableSource);\n}\nfunction resetWorkInProgressVersions() {\n for (var i = 0; i < workInProgressSources.length; i++) {\n var mutableSource = workInProgressSources[i];\n\n {\n mutableSource._workInProgressVersionPrimary = null;\n }\n }\n\n workInProgressSources.length = 0;\n}\nfunction getWorkInProgressVersion(mutableSource) {\n {\n return mutableSource._workInProgressVersionPrimary;\n }\n}\nfunction setWorkInProgressVersion(mutableSource, version) {\n {\n mutableSource._workInProgressVersionPrimary = version;\n }\n\n workInProgressSources.push(mutableSource);\n}\nfunction warnAboutMultipleRenderersDEV(mutableSource) {\n {\n {\n if (mutableSource._currentPrimaryRenderer == null) {\n mutableSource._currentPrimaryRenderer = rendererSigil$1;\n } else if (mutableSource._currentPrimaryRenderer !== rendererSigil$1) {\n error('Detected multiple renderers concurrently rendering the ' + 'same mutable source. This is currently unsupported.');\n }\n }\n }\n} // Eager reads the version of a mutable source and stores it on the root.\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentBatchConfig$1 = ReactSharedInternals.ReactCurrentBatchConfig;\nvar didWarnAboutMismatchedHooksForComponent;\nvar didWarnAboutUseOpaqueIdentifier;\n\n{\n didWarnAboutUseOpaqueIdentifier = {};\n didWarnAboutMismatchedHooksForComponent = new Set();\n}\n\n// These are set right before calling the component.\nvar renderLanes = NoLanes; // The work-in-progress fiber. I've named it differently to distinguish it from\n// the work-in-progress hook.\n\nvar currentlyRenderingFiber$1 = null; // Hooks are stored as a linked list on the fiber's memoizedState field. The\n// current hook list is the list that belongs to the current fiber. The\n// work-in-progress hook list is a new list that will be added to the\n// work-in-progress fiber.\n\nvar currentHook = null;\nvar workInProgressHook = null; // Whether an update was scheduled at any point during the render phase. This\n// does not get reset if we do another render pass; only when we're completely\n// finished evaluating this component. This is an optimization so we know\n// whether we need to clear render phase updates after a throw.\n\nvar didScheduleRenderPhaseUpdate = false; // Where an update was scheduled only during the current render pass. This\n// gets reset after each attempt.\n// TODO: Maybe there's some way to consolidate this with\n// `didScheduleRenderPhaseUpdate`. Or with `numberOfReRenders`.\n\nvar didScheduleRenderPhaseUpdateDuringThisPass = false;\nvar RE_RENDER_LIMIT = 25; // In DEV, this is the name of the currently executing primitive hook\n\nvar currentHookNameInDev = null; // In DEV, this list ensures that hooks are called in the same order between renders.\n// The list stores the order of hooks used during the initial render (mount).\n// Subsequent renders (updates) reference this list.\n\nvar hookTypesDev = null;\nvar hookTypesUpdateIndexDev = -1; // In DEV, this tracks whether currently rendering component needs to ignore\n// the dependencies for Hooks that need them (e.g. useEffect or useMemo).\n// When true, such Hooks will always be \"remounted\". Only used during hot reload.\n\nvar ignorePreviousDependencies = false;\n\nfunction mountHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev === null) {\n hookTypesDev = [hookName];\n } else {\n hookTypesDev.push(hookName);\n }\n }\n}\n\nfunction updateHookTypesDev() {\n {\n var hookName = currentHookNameInDev;\n\n if (hookTypesDev !== null) {\n hookTypesUpdateIndexDev++;\n\n if (hookTypesDev[hookTypesUpdateIndexDev] !== hookName) {\n warnOnHookMismatchInDev(hookName);\n }\n }\n }\n}\n\nfunction checkDepsAreArrayDev(deps) {\n {\n if (deps !== undefined && deps !== null && !Array.isArray(deps)) {\n // Verify deps, but only on mount to avoid extra checks.\n // It's unlikely their type would change as usually you define them inline.\n error('%s received a final argument that is not an array (instead, received `%s`). When ' + 'specified, the final argument must be an array.', currentHookNameInDev, typeof deps);\n }\n }\n}\n\nfunction warnOnHookMismatchInDev(currentHookName) {\n {\n var componentName = getComponentName(currentlyRenderingFiber$1.type);\n\n if (!didWarnAboutMismatchedHooksForComponent.has(componentName)) {\n didWarnAboutMismatchedHooksForComponent.add(componentName);\n\n if (hookTypesDev !== null) {\n var table = '';\n var secondColumnStart = 30;\n\n for (var i = 0; i <= hookTypesUpdateIndexDev; i++) {\n var oldHookName = hookTypesDev[i];\n var newHookName = i === hookTypesUpdateIndexDev ? currentHookName : oldHookName;\n var row = i + 1 + \". \" + oldHookName; // Extra space so second column lines up\n // lol @ IE not supporting String#repeat\n\n while (row.length < secondColumnStart) {\n row += ' ';\n }\n\n row += newHookName + '\\n';\n table += row;\n }\n\n error('React has detected a change in the order of Hooks called by %s. ' + 'This will lead to bugs and errors if not fixed. ' + 'For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks\\n\\n' + ' Previous render Next render\\n' + ' ------------------------------------------------------\\n' + '%s' + ' ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\\n', componentName, table);\n }\n }\n }\n}\n\nfunction throwInvalidHookError() {\n {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n {\n if (ignorePreviousDependencies) {\n // Only true when this component is being hot reloaded.\n return false;\n }\n }\n\n if (prevDeps === null) {\n {\n error('%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n }\n\n return false;\n }\n\n {\n // Don't bother comparing lengths in prod because these arrays should be\n // passed inline.\n if (nextDeps.length !== prevDeps.length) {\n error('The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, \"[\" + prevDeps.join(', ') + \"]\", \"[\" + nextDeps.join(', ') + \"]\");\n }\n }\n\n for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n if (objectIs(nextDeps[i], prevDeps[i])) {\n continue;\n }\n\n return false;\n }\n\n return true;\n}\n\nfunction renderWithHooks(current, workInProgress, Component, props, secondArg, nextRenderLanes) {\n renderLanes = nextRenderLanes;\n currentlyRenderingFiber$1 = workInProgress;\n\n {\n hookTypesDev = current !== null ? current._debugHookTypes : null;\n hookTypesUpdateIndexDev = -1; // Used for hot reloading:\n\n ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;\n }\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.lanes = NoLanes; // The following should have already been reset\n // currentHook = null;\n // workInProgressHook = null;\n // didScheduleRenderPhaseUpdate = false;\n // TODO Warn if no hooks are used at all during mount, then some are used during update.\n // Currently we will identify the update render as a mount because memoizedState === null.\n // This is tricky because it's valid for certain types of components (e.g. React.lazy)\n // Using memoizedState to differentiate between mount/update only works if at least one stateful hook is used.\n // Non-stateful hooks (e.g. context) don't get added to memoizedState,\n // so memoizedState would be null during updates and mounts.\n\n {\n if (current !== null && current.memoizedState !== null) {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnUpdateInDEV;\n } else if (hookTypesDev !== null) {\n // This dispatcher handles an edge case where a component is updating,\n // but no stateful hooks have been used.\n // We want to match the production code behavior (which will use HooksDispatcherOnMount),\n // but with the extra DEV validation to ensure hooks ordering hasn't changed.\n // This dispatcher does that.\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountWithHookTypesInDEV;\n } else {\n ReactCurrentDispatcher$1.current = HooksDispatcherOnMountInDEV;\n }\n }\n\n var children = Component(props, secondArg); // Check if there was a render phase update\n\n if (didScheduleRenderPhaseUpdateDuringThisPass) {\n // Keep rendering in a loop for as long as render phase updates continue to\n // be scheduled. Use a counter to prevent infinite loops.\n var numberOfReRenders = 0;\n\n do {\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n\n if (!(numberOfReRenders < RE_RENDER_LIMIT)) {\n {\n throw Error( \"Too many re-renders. React limits the number of renders to prevent an infinite loop.\" );\n }\n }\n\n numberOfReRenders += 1;\n\n {\n // Even when hot reloading, allow dependencies to stabilize\n // after first render to prevent infinite render phase updates.\n ignorePreviousDependencies = false;\n } // Start over from the beginning of the list\n\n\n currentHook = null;\n workInProgressHook = null;\n workInProgress.updateQueue = null;\n\n {\n // Also validate hook order for cascading updates.\n hookTypesUpdateIndexDev = -1;\n }\n\n ReactCurrentDispatcher$1.current = HooksDispatcherOnRerenderInDEV ;\n children = Component(props, secondArg);\n } while (didScheduleRenderPhaseUpdateDuringThisPass);\n } // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n\n\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n {\n workInProgress._debugHookTypes = hookTypesDev;\n } // This check uses currentHook so that it works the same in DEV and prod bundles.\n // hookTypesDev could catch more cases (e.g. context) but only in DEV bundles.\n\n\n var didRenderTooFewHooks = currentHook !== null && currentHook.next !== null;\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n currentHookNameInDev = null;\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n }\n\n didScheduleRenderPhaseUpdate = false;\n\n if (!!didRenderTooFewHooks) {\n {\n throw Error( \"Rendered fewer hooks than expected. This may be caused by an accidental early return statement.\" );\n }\n }\n\n return children;\n}\nfunction bailoutHooks(current, workInProgress, lanes) {\n workInProgress.updateQueue = current.updateQueue;\n workInProgress.flags &= ~(Passive | Update);\n current.lanes = removeLanes(current.lanes, lanes);\n}\nfunction resetHooksAfterThrow() {\n // We can assume the previous dispatcher is always this one, since we set it\n // at the beginning of the render phase and there's no re-entrancy.\n ReactCurrentDispatcher$1.current = ContextOnlyDispatcher;\n\n if (didScheduleRenderPhaseUpdate) {\n // There were render phase updates. These are only valid for this render\n // phase, which we are now aborting. Remove the updates from the queues so\n // they do not persist to the next render. Do not remove updates from hooks\n // that weren't processed.\n //\n // Only reset the updates from the queue if it has a clone. If it does\n // not have a clone, that means it wasn't processed, and the updates were\n // scheduled before we entered the render phase.\n var hook = currentlyRenderingFiber$1.memoizedState;\n\n while (hook !== null) {\n var queue = hook.queue;\n\n if (queue !== null) {\n queue.pending = null;\n }\n\n hook = hook.next;\n }\n\n didScheduleRenderPhaseUpdate = false;\n }\n\n renderLanes = NoLanes;\n currentlyRenderingFiber$1 = null;\n currentHook = null;\n workInProgressHook = null;\n\n {\n hookTypesDev = null;\n hookTypesUpdateIndexDev = -1;\n currentHookNameInDev = null;\n isUpdatingOpaqueValueInRenderPhase = false;\n }\n\n didScheduleRenderPhaseUpdateDuringThisPass = false;\n}\n\nfunction mountWorkInProgressHook() {\n var hook = {\n memoizedState: null,\n baseState: null,\n baseQueue: null,\n queue: null,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = hook;\n } else {\n // Append to the end of the list\n workInProgressHook = workInProgressHook.next = hook;\n }\n\n return workInProgressHook;\n}\n\nfunction updateWorkInProgressHook() {\n // This function is used both for updates and for re-renders triggered by a\n // render phase update. It assumes there is either a current hook we can\n // clone, or a work-in-progress hook from a previous render pass that we can\n // use as a base. When we reach the end of the base list, we must switch to\n // the dispatcher used for mounts.\n var nextCurrentHook;\n\n if (currentHook === null) {\n var current = currentlyRenderingFiber$1.alternate;\n\n if (current !== null) {\n nextCurrentHook = current.memoizedState;\n } else {\n nextCurrentHook = null;\n }\n } else {\n nextCurrentHook = currentHook.next;\n }\n\n var nextWorkInProgressHook;\n\n if (workInProgressHook === null) {\n nextWorkInProgressHook = currentlyRenderingFiber$1.memoizedState;\n } else {\n nextWorkInProgressHook = workInProgressHook.next;\n }\n\n if (nextWorkInProgressHook !== null) {\n // There's already a work-in-progress. Reuse it.\n workInProgressHook = nextWorkInProgressHook;\n nextWorkInProgressHook = workInProgressHook.next;\n currentHook = nextCurrentHook;\n } else {\n // Clone from the current hook.\n if (!(nextCurrentHook !== null)) {\n {\n throw Error( \"Rendered more hooks than during the previous render.\" );\n }\n }\n\n currentHook = nextCurrentHook;\n var newHook = {\n memoizedState: currentHook.memoizedState,\n baseState: currentHook.baseState,\n baseQueue: currentHook.baseQueue,\n queue: currentHook.queue,\n next: null\n };\n\n if (workInProgressHook === null) {\n // This is the first hook in the list.\n currentlyRenderingFiber$1.memoizedState = workInProgressHook = newHook;\n } else {\n // Append to the end of the list.\n workInProgressHook = workInProgressHook.next = newHook;\n }\n }\n\n return workInProgressHook;\n}\n\nfunction createFunctionComponentUpdateQueue() {\n return {\n lastEffect: null\n };\n}\n\nfunction basicStateReducer(state, action) {\n // $FlowFixMe: Flow doesn't like mixed types\n return typeof action === 'function' ? action(state) : action;\n}\n\nfunction mountReducer(reducer, initialArg, init) {\n var hook = mountWorkInProgressHook();\n var initialState;\n\n if (init !== undefined) {\n initialState = init(initialArg);\n } else {\n initialState = initialArg;\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: reducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer;\n var current = currentHook; // The last rebase update that is NOT part of the base state.\n\n var baseQueue = current.baseQueue; // The last pending update that hasn't been processed yet.\n\n var pendingQueue = queue.pending;\n\n if (pendingQueue !== null) {\n // We have new updates that haven't been processed yet.\n // We'll add them to the base queue.\n if (baseQueue !== null) {\n // Merge the pending queue and the base queue.\n var baseFirst = baseQueue.next;\n var pendingFirst = pendingQueue.next;\n baseQueue.next = pendingFirst;\n pendingQueue.next = baseFirst;\n }\n\n {\n if (current.baseQueue !== baseQueue) {\n // Internal invariant that should never happen, but feasibly could in\n // the future if we implement resuming, or some form of that.\n error('Internal error: Expected work-in-progress queue to be a clone. ' + 'This is a bug in React.');\n }\n }\n\n current.baseQueue = baseQueue = pendingQueue;\n queue.pending = null;\n }\n\n if (baseQueue !== null) {\n // We have a queue to process.\n var first = baseQueue.next;\n var newState = current.baseState;\n var newBaseState = null;\n var newBaseQueueFirst = null;\n var newBaseQueueLast = null;\n var update = first;\n\n do {\n var updateLane = update.lane;\n\n if (!isSubsetOfLanes(renderLanes, updateLane)) {\n // Priority is insufficient. Skip this update. If this is the first\n // skipped update, the previous update/state is the new base\n // update/state.\n var clone = {\n lane: updateLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n\n if (newBaseQueueLast === null) {\n newBaseQueueFirst = newBaseQueueLast = clone;\n newBaseState = newState;\n } else {\n newBaseQueueLast = newBaseQueueLast.next = clone;\n } // Update the remaining priority in the queue.\n // TODO: Don't need to accumulate this. Instead, we can remove\n // renderLanes from the original lanes.\n\n\n currentlyRenderingFiber$1.lanes = mergeLanes(currentlyRenderingFiber$1.lanes, updateLane);\n markSkippedUpdateLanes(updateLane);\n } else {\n // This update does have sufficient priority.\n if (newBaseQueueLast !== null) {\n var _clone = {\n // This update is going to be committed so we never want uncommit\n // it. Using NoLane works because 0 is a subset of all bitmasks, so\n // this will never be skipped by the check above.\n lane: NoLane,\n action: update.action,\n eagerReducer: update.eagerReducer,\n eagerState: update.eagerState,\n next: null\n };\n newBaseQueueLast = newBaseQueueLast.next = _clone;\n } // Process this update.\n\n\n if (update.eagerReducer === reducer) {\n // If this update was processed eagerly, and its reducer matches the\n // current reducer, we can use the eagerly computed state.\n newState = update.eagerState;\n } else {\n var action = update.action;\n newState = reducer(newState, action);\n }\n }\n\n update = update.next;\n } while (update !== null && update !== first);\n\n if (newBaseQueueLast === null) {\n newBaseState = newState;\n } else {\n newBaseQueueLast.next = newBaseQueueFirst;\n } // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState;\n hook.baseState = newBaseState;\n hook.baseQueue = newBaseQueueLast;\n queue.lastRenderedState = newState;\n }\n\n var dispatch = queue.dispatch;\n return [hook.memoizedState, dispatch];\n}\n\nfunction rerenderReducer(reducer, initialArg, init) {\n var hook = updateWorkInProgressHook();\n var queue = hook.queue;\n\n if (!(queue !== null)) {\n {\n throw Error( \"Should have a queue. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n queue.lastRenderedReducer = reducer; // This is a re-render. Apply the new render phase updates to the previous\n // work-in-progress hook.\n\n var dispatch = queue.dispatch;\n var lastRenderPhaseUpdate = queue.pending;\n var newState = hook.memoizedState;\n\n if (lastRenderPhaseUpdate !== null) {\n // The queue doesn't persist past this render pass.\n queue.pending = null;\n var firstRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n var update = firstRenderPhaseUpdate;\n\n do {\n // Process this render phase update. We don't have to check the\n // priority because it will always be the same as the current\n // render's.\n var action = update.action;\n newState = reducer(newState, action);\n update = update.next;\n } while (update !== firstRenderPhaseUpdate); // Mark that the fiber performed work, but only if the new state is\n // different from the current state.\n\n\n if (!objectIs(newState, hook.memoizedState)) {\n markWorkInProgressReceivedUpdate();\n }\n\n hook.memoizedState = newState; // Don't persist the state accumulated from the render phase updates to\n // the base state unless the queue is empty.\n // TODO: Not sure if this is the desired semantics, but it's what we\n // do for gDSFP. I can't remember why.\n\n if (hook.baseQueue === null) {\n hook.baseState = newState;\n }\n\n queue.lastRenderedState = newState;\n }\n\n return [newState, dispatch];\n}\n\nfunction readFromUnsubcribedMutableSource(root, source, getSnapshot) {\n {\n warnAboutMultipleRenderersDEV(source);\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source); // Is it safe for this component to read from this source during the current render?\n\n var isSafeToReadFromSource = false; // Check the version first.\n // If this render has already been started with a specific version,\n // we can use it alone to determine if we can safely read from the source.\n\n var currentRenderVersion = getWorkInProgressVersion(source);\n\n if (currentRenderVersion !== null) {\n // It's safe to read if the store hasn't been mutated since the last time\n // we read something.\n isSafeToReadFromSource = currentRenderVersion === version;\n } else {\n // If there's no version, then this is the first time we've read from the\n // source during the current render pass, so we need to do a bit more work.\n // What we need to determine is if there are any hooks that already\n // subscribed to the source, and if so, whether there are any pending\n // mutations that haven't been synchronized yet.\n //\n // If there are no pending mutations, then `root.mutableReadLanes` will be\n // empty, and we know we can safely read.\n //\n // If there *are* pending mutations, we may still be able to safely read\n // if the currently rendering lanes are inclusive of the pending mutation\n // lanes, since that guarantees that the value we're about to read from\n // the source is consistent with the values that we read during the most\n // recent mutation.\n isSafeToReadFromSource = isSubsetOfLanes(renderLanes, root.mutableReadLanes);\n\n if (isSafeToReadFromSource) {\n // If it's safe to read from this source during the current render,\n // store the version in case other components read from it.\n // A changed version number will let those components know to throw and restart the render.\n setWorkInProgressVersion(source, version);\n }\n }\n\n if (isSafeToReadFromSource) {\n var snapshot = getSnapshot(source._source);\n\n {\n if (typeof snapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n return snapshot;\n } else {\n // This handles the special case of a mutable source being shared between renderers.\n // In that case, if the source is mutated between the first and second renderer,\n // The second renderer don't know that it needs to reset the WIP version during unwind,\n // (because the hook only marks sources as dirty if it's written to their WIP version).\n // That would cause this tear check to throw again and eventually be visible to the user.\n // We can avoid this infinite loop by explicitly marking the source as dirty.\n //\n // This can lead to tearing in the first renderer when it resumes,\n // but there's nothing we can do about that (short of throwing here and refusing to continue the render).\n markSourceAsDirty(source);\n\n {\n {\n throw Error( \"Cannot read from mutable source during the current render without tearing. This is a bug in React. Please file an issue.\" );\n }\n }\n }\n}\n\nfunction useMutableSource(hook, source, getSnapshot, subscribe) {\n var root = getWorkInProgressRoot();\n\n if (!(root !== null)) {\n {\n throw Error( \"Expected a work-in-progress root. This is a bug in React. Please file an issue.\" );\n }\n }\n\n var getVersion = source._getVersion;\n var version = getVersion(source._source);\n var dispatcher = ReactCurrentDispatcher$1.current; // eslint-disable-next-line prefer-const\n\n var _dispatcher$useState = dispatcher.useState(function () {\n return readFromUnsubcribedMutableSource(root, source, getSnapshot);\n }),\n currentSnapshot = _dispatcher$useState[0],\n setSnapshot = _dispatcher$useState[1];\n\n var snapshot = currentSnapshot; // Grab a handle to the state hook as well.\n // We use it to clear the pending update queue if we have a new source.\n\n var stateHook = workInProgressHook;\n var memoizedState = hook.memoizedState;\n var refs = memoizedState.refs;\n var prevGetSnapshot = refs.getSnapshot;\n var prevSource = memoizedState.source;\n var prevSubscribe = memoizedState.subscribe;\n var fiber = currentlyRenderingFiber$1;\n hook.memoizedState = {\n refs: refs,\n source: source,\n subscribe: subscribe\n }; // Sync the values needed by our subscription handler after each commit.\n\n dispatcher.useEffect(function () {\n refs.getSnapshot = getSnapshot; // Normally the dispatch function for a state hook never changes,\n // but this hook recreates the queue in certain cases to avoid updates from stale sources.\n // handleChange() below needs to reference the dispatch function without re-subscribing,\n // so we use a ref to ensure that it always has the latest version.\n\n refs.setSnapshot = setSnapshot; // Check for a possible change between when we last rendered now.\n\n var maybeNewVersion = getVersion(source._source);\n\n if (!objectIs(version, maybeNewVersion)) {\n var maybeNewSnapshot = getSnapshot(source._source);\n\n {\n if (typeof maybeNewSnapshot === 'function') {\n error('Mutable source should not return a function as the snapshot value. ' + 'Functions may close over mutable values and cause tearing.');\n }\n }\n\n if (!objectIs(snapshot, maybeNewSnapshot)) {\n setSnapshot(maybeNewSnapshot);\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } // If the source mutated between render and now,\n // there may be state updates already scheduled from the old source.\n // Entangle the updates so that they render in the same batch.\n\n\n markRootEntangled(root, root.mutableReadLanes);\n }\n }, [getSnapshot, source, subscribe]); // If we got a new source or subscribe function, re-subscribe in a passive effect.\n\n dispatcher.useEffect(function () {\n var handleChange = function () {\n var latestGetSnapshot = refs.getSnapshot;\n var latestSetSnapshot = refs.setSnapshot;\n\n try {\n latestSetSnapshot(latestGetSnapshot(source._source)); // Record a pending mutable source update with the same expiration time.\n\n var lane = requestUpdateLane(fiber);\n markRootMutableRead(root, lane);\n } catch (error) {\n // A selector might throw after a source mutation.\n // e.g. it might try to read from a part of the store that no longer exists.\n // In this case we should still schedule an update with React.\n // Worst case the selector will throw again and then an error boundary will handle it.\n latestSetSnapshot(function () {\n throw error;\n });\n }\n };\n\n var unsubscribe = subscribe(source._source, handleChange);\n\n {\n if (typeof unsubscribe !== 'function') {\n error('Mutable source subscribe function must return an unsubscribe function.');\n }\n }\n\n return unsubscribe;\n }, [source, subscribe]); // If any of the inputs to useMutableSource change, reading is potentially unsafe.\n //\n // If either the source or the subscription have changed we can't can't trust the update queue.\n // Maybe the source changed in a way that the old subscription ignored but the new one depends on.\n //\n // If the getSnapshot function changed, we also shouldn't rely on the update queue.\n // It's possible that the underlying source was mutated between the when the last \"change\" event fired,\n // and when the current render (with the new getSnapshot function) is processed.\n //\n // In both cases, we need to throw away pending updates (since they are no longer relevant)\n // and treat reading from the source as we do in the mount case.\n\n if (!objectIs(prevGetSnapshot, getSnapshot) || !objectIs(prevSource, source) || !objectIs(prevSubscribe, subscribe)) {\n // Create a new queue and setState method,\n // So if there are interleaved updates, they get pushed to the older queue.\n // When this becomes current, the previous queue and dispatch method will be discarded,\n // including any interleaving updates that occur.\n var newQueue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: snapshot\n };\n newQueue.dispatch = setSnapshot = dispatchAction.bind(null, currentlyRenderingFiber$1, newQueue);\n stateHook.queue = newQueue;\n stateHook.baseQueue = null;\n snapshot = readFromUnsubcribedMutableSource(root, source, getSnapshot);\n stateHook.memoizedState = stateHook.baseState = snapshot;\n }\n\n return snapshot;\n}\n\nfunction mountMutableSource(source, getSnapshot, subscribe) {\n var hook = mountWorkInProgressHook();\n hook.memoizedState = {\n refs: {\n getSnapshot: getSnapshot,\n setSnapshot: null\n },\n source: source,\n subscribe: subscribe\n };\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction updateMutableSource(source, getSnapshot, subscribe) {\n var hook = updateWorkInProgressHook();\n return useMutableSource(hook, source, getSnapshot, subscribe);\n}\n\nfunction mountState(initialState) {\n var hook = mountWorkInProgressHook();\n\n if (typeof initialState === 'function') {\n // $FlowFixMe: Flow doesn't like mixed types\n initialState = initialState();\n }\n\n hook.memoizedState = hook.baseState = initialState;\n var queue = hook.queue = {\n pending: null,\n dispatch: null,\n lastRenderedReducer: basicStateReducer,\n lastRenderedState: initialState\n };\n var dispatch = queue.dispatch = dispatchAction.bind(null, currentlyRenderingFiber$1, queue);\n return [hook.memoizedState, dispatch];\n}\n\nfunction updateState(initialState) {\n return updateReducer(basicStateReducer);\n}\n\nfunction rerenderState(initialState) {\n return rerenderReducer(basicStateReducer);\n}\n\nfunction pushEffect(tag, create, destroy, deps) {\n var effect = {\n tag: tag,\n create: create,\n destroy: destroy,\n deps: deps,\n // Circular\n next: null\n };\n var componentUpdateQueue = currentlyRenderingFiber$1.updateQueue;\n\n if (componentUpdateQueue === null) {\n componentUpdateQueue = createFunctionComponentUpdateQueue();\n currentlyRenderingFiber$1.updateQueue = componentUpdateQueue;\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var lastEffect = componentUpdateQueue.lastEffect;\n\n if (lastEffect === null) {\n componentUpdateQueue.lastEffect = effect.next = effect;\n } else {\n var firstEffect = lastEffect.next;\n lastEffect.next = effect;\n effect.next = firstEffect;\n componentUpdateQueue.lastEffect = effect;\n }\n }\n\n return effect;\n}\n\nfunction mountRef(initialValue) {\n var hook = mountWorkInProgressHook();\n var ref = {\n current: initialValue\n };\n\n {\n Object.seal(ref);\n }\n\n hook.memoizedState = ref;\n return ref;\n}\n\nfunction updateRef(initialValue) {\n var hook = updateWorkInProgressHook();\n return hook.memoizedState;\n}\n\nfunction mountEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, undefined, nextDeps);\n}\n\nfunction updateEffectImpl(fiberFlags, hookFlags, create, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var destroy = undefined;\n\n if (currentHook !== null) {\n var prevEffect = currentHook.memoizedState;\n destroy = prevEffect.destroy;\n\n if (nextDeps !== null) {\n var prevDeps = prevEffect.deps;\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n pushEffect(hookFlags, create, destroy, nextDeps);\n return;\n }\n }\n }\n\n currentlyRenderingFiber$1.flags |= fiberFlags;\n hook.memoizedState = pushEffect(HasEffect | hookFlags, create, destroy, nextDeps);\n}\n\nfunction mountEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return mountEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction updateEffect(create, deps) {\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotCurrentlyActingEffectsInDEV(currentlyRenderingFiber$1);\n }\n }\n\n return updateEffectImpl(Update | Passive, Passive$1, create, deps);\n}\n\nfunction mountLayoutEffect(create, deps) {\n return mountEffectImpl(Update, Layout, create, deps);\n}\n\nfunction updateLayoutEffect(create, deps) {\n return updateEffectImpl(Update, Layout, create, deps);\n}\n\nfunction imperativeHandleEffect(create, ref) {\n if (typeof ref === 'function') {\n var refCallback = ref;\n\n var _inst = create();\n\n refCallback(_inst);\n return function () {\n refCallback(null);\n };\n } else if (ref !== null && ref !== undefined) {\n var refObject = ref;\n\n {\n if (!refObject.hasOwnProperty('current')) {\n error('Expected useImperativeHandle() first argument to either be a ' + 'ref callback or React.createRef() object. Instead received: %s.', 'an object with keys {' + Object.keys(refObject).join(', ') + '}');\n }\n }\n\n var _inst2 = create();\n\n refObject.current = _inst2;\n return function () {\n refObject.current = null;\n };\n }\n}\n\nfunction mountImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return mountEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction updateImperativeHandle(ref, create, deps) {\n {\n if (typeof create !== 'function') {\n error('Expected useImperativeHandle() second argument to be a function ' + 'that creates a handle. Instead received: %s.', create !== null ? typeof create : 'null');\n }\n } // TODO: If deps are provided, should we skip comparing the ref itself?\n\n\n var effectDeps = deps !== null && deps !== undefined ? deps.concat([ref]) : null;\n return updateEffectImpl(Update, Layout, imperativeHandleEffect.bind(null, create, ref), effectDeps);\n}\n\nfunction mountDebugValue(value, formatterFn) {// This hook is normally a no-op.\n // The react-debug-hooks package injects its own implementation\n // so that e.g. DevTools can display custom hook values.\n}\n\nvar updateDebugValue = mountDebugValue;\n\nfunction mountCallback(callback, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction updateCallback(callback, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n hook.memoizedState = [callback, nextDeps];\n return callback;\n}\n\nfunction mountMemo(nextCreate, deps) {\n var hook = mountWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction updateMemo(nextCreate, deps) {\n var hook = updateWorkInProgressHook();\n var nextDeps = deps === undefined ? null : deps;\n var prevState = hook.memoizedState;\n\n if (prevState !== null) {\n // Assume these are defined. If they're not, areHookInputsEqual will warn.\n if (nextDeps !== null) {\n var prevDeps = prevState[1];\n\n if (areHookInputsEqual(nextDeps, prevDeps)) {\n return prevState[0];\n }\n }\n }\n\n var nextValue = nextCreate();\n hook.memoizedState = [nextValue, nextDeps];\n return nextValue;\n}\n\nfunction mountDeferredValue(value) {\n var _mountState = mountState(value),\n prevValue = _mountState[0],\n setValue = _mountState[1];\n\n mountEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction updateDeferredValue(value) {\n var _updateState = updateState(),\n prevValue = _updateState[0],\n setValue = _updateState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction rerenderDeferredValue(value) {\n var _rerenderState = rerenderState(),\n prevValue = _rerenderState[0],\n setValue = _rerenderState[1];\n\n updateEffect(function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setValue(value);\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n }, [value]);\n return prevValue;\n}\n\nfunction startTransition(setPending, callback) {\n var priorityLevel = getCurrentPriorityLevel();\n\n {\n runWithPriority$1(priorityLevel < UserBlockingPriority$2 ? UserBlockingPriority$2 : priorityLevel, function () {\n setPending(true);\n });\n runWithPriority$1(priorityLevel > NormalPriority$1 ? NormalPriority$1 : priorityLevel, function () {\n var prevTransition = ReactCurrentBatchConfig$1.transition;\n ReactCurrentBatchConfig$1.transition = 1;\n\n try {\n setPending(false);\n callback();\n } finally {\n ReactCurrentBatchConfig$1.transition = prevTransition;\n }\n });\n }\n}\n\nfunction mountTransition() {\n var _mountState2 = mountState(false),\n isPending = _mountState2[0],\n setPending = _mountState2[1]; // The `start` method can be stored on a ref, since `setPending`\n // never changes.\n\n\n var start = startTransition.bind(null, setPending);\n mountRef(start);\n return [start, isPending];\n}\n\nfunction updateTransition() {\n var _updateState2 = updateState(),\n isPending = _updateState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nfunction rerenderTransition() {\n var _rerenderState2 = rerenderState(),\n isPending = _rerenderState2[0];\n\n var startRef = updateRef();\n var start = startRef.current;\n return [start, isPending];\n}\n\nvar isUpdatingOpaqueValueInRenderPhase = false;\nfunction getIsUpdatingOpaqueValueInRenderPhaseInDEV() {\n {\n return isUpdatingOpaqueValueInRenderPhase;\n }\n}\n\nfunction warnOnOpaqueIdentifierAccessInDEV(fiber) {\n {\n // TODO: Should warn in effects and callbacks, too\n var name = getComponentName(fiber.type) || 'Unknown';\n\n if (getIsRendering() && !didWarnAboutUseOpaqueIdentifier[name]) {\n error('The object passed back from useOpaqueIdentifier is meant to be ' + 'passed through to attributes only. Do not read the ' + 'value directly.');\n\n didWarnAboutUseOpaqueIdentifier[name] = true;\n }\n }\n}\n\nfunction mountOpaqueIdentifier() {\n var makeId = makeClientIdInDEV.bind(null, warnOnOpaqueIdentifierAccessInDEV.bind(null, currentlyRenderingFiber$1)) ;\n\n if (getIsHydrating()) {\n var didUpgrade = false;\n var fiber = currentlyRenderingFiber$1;\n\n var readValue = function () {\n if (!didUpgrade) {\n // Only upgrade once. This works even inside the render phase because\n // the update is added to a shared queue, which outlasts the\n // in-progress render.\n didUpgrade = true;\n\n {\n isUpdatingOpaqueValueInRenderPhase = true;\n setId(makeId());\n isUpdatingOpaqueValueInRenderPhase = false;\n warnOnOpaqueIdentifierAccessInDEV(fiber);\n }\n }\n\n {\n {\n throw Error( \"The object passed back from useOpaqueIdentifier is meant to be passed through to attributes only. Do not read the value directly.\" );\n }\n }\n };\n\n var id = makeOpaqueHydratingObject(readValue);\n var setId = mountState(id)[1];\n\n if ((currentlyRenderingFiber$1.mode & BlockingMode) === NoMode) {\n currentlyRenderingFiber$1.flags |= Update | Passive;\n pushEffect(HasEffect | Passive$1, function () {\n setId(makeId());\n }, undefined, null);\n }\n\n return id;\n } else {\n var _id = makeId();\n\n mountState(_id);\n return _id;\n }\n}\n\nfunction updateOpaqueIdentifier() {\n var id = updateState()[0];\n return id;\n}\n\nfunction rerenderOpaqueIdentifier() {\n var id = rerenderState()[0];\n return id;\n}\n\nfunction dispatchAction(fiber, queue, action) {\n {\n if (typeof arguments[3] === 'function') {\n error(\"State updates from the useState() and useReducer() Hooks don't support the \" + 'second callback argument. To execute a side effect after ' + 'rendering, declare it in the component body with useEffect().');\n }\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n var update = {\n lane: lane,\n action: action,\n eagerReducer: null,\n eagerState: null,\n next: null\n }; // Append the update to the end of the list.\n\n var pending = queue.pending;\n\n if (pending === null) {\n // This is the first update. Create a circular list.\n update.next = update;\n } else {\n update.next = pending.next;\n pending.next = update;\n }\n\n queue.pending = update;\n var alternate = fiber.alternate;\n\n if (fiber === currentlyRenderingFiber$1 || alternate !== null && alternate === currentlyRenderingFiber$1) {\n // This is a render phase update. Stash it in a lazily-created map of\n // queue -> linked list of updates. After this render pass, we'll restart\n // and apply the stashed updates on top of the work-in-progress hook.\n didScheduleRenderPhaseUpdateDuringThisPass = didScheduleRenderPhaseUpdate = true;\n } else {\n if (fiber.lanes === NoLanes && (alternate === null || alternate.lanes === NoLanes)) {\n // The queue is currently empty, which means we can eagerly compute the\n // next state before entering the render phase. If the new state is the\n // same as the current state, we may be able to bail out entirely.\n var lastRenderedReducer = queue.lastRenderedReducer;\n\n if (lastRenderedReducer !== null) {\n var prevDispatcher;\n\n {\n prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n }\n\n try {\n var currentState = queue.lastRenderedState;\n var eagerState = lastRenderedReducer(currentState, action); // Stash the eagerly computed state, and the reducer used to compute\n // it, on the update object. If the reducer hasn't changed by the\n // time we enter the render phase, then the eager state can be used\n // without calling the reducer again.\n\n update.eagerReducer = lastRenderedReducer;\n update.eagerState = eagerState;\n\n if (objectIs(eagerState, currentState)) {\n // Fast path. We can bail out without scheduling React to re-render.\n // It's still possible that we'll need to rebase this update later,\n // if the component re-renders for a different reason and by that\n // time the reducer has changed.\n return;\n }\n } catch (error) {// Suppress the error. It will throw again in the render phase.\n } finally {\n {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n }\n }\n }\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfNotScopedWithMatchingAct(fiber);\n warnIfNotCurrentlyActingUpdatesInDev(fiber);\n }\n }\n\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n }\n}\n\nvar ContextOnlyDispatcher = {\n readContext: readContext,\n useCallback: throwInvalidHookError,\n useContext: throwInvalidHookError,\n useEffect: throwInvalidHookError,\n useImperativeHandle: throwInvalidHookError,\n useLayoutEffect: throwInvalidHookError,\n useMemo: throwInvalidHookError,\n useReducer: throwInvalidHookError,\n useRef: throwInvalidHookError,\n useState: throwInvalidHookError,\n useDebugValue: throwInvalidHookError,\n useDeferredValue: throwInvalidHookError,\n useTransition: throwInvalidHookError,\n useMutableSource: throwInvalidHookError,\n useOpaqueIdentifier: throwInvalidHookError,\n unstable_isNewReconciler: enableNewReconciler\n};\nvar HooksDispatcherOnMountInDEV = null;\nvar HooksDispatcherOnMountWithHookTypesInDEV = null;\nvar HooksDispatcherOnUpdateInDEV = null;\nvar HooksDispatcherOnRerenderInDEV = null;\nvar InvalidNestedHooksDispatcherOnMountInDEV = null;\nvar InvalidNestedHooksDispatcherOnUpdateInDEV = null;\nvar InvalidNestedHooksDispatcherOnRerenderInDEV = null;\n\n{\n var warnInvalidContextAccess = function () {\n error('Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().');\n };\n\n var warnInvalidHookAccess = function () {\n error('Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://reactjs.org/link/rules-of-hooks');\n };\n\n HooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n mountHookTypesDev();\n checkDepsAreArrayDev(deps);\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnMountWithHookTypesInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n HooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnRerenderInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnMountInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountRef(initialValue);\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n mountHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnMountInDEV;\n\n try {\n return mountState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n mountHookTypesDev();\n return mountOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnUpdateInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n InvalidNestedHooksDispatcherOnRerenderInDEV = {\n readContext: function (context, observedBits) {\n warnInvalidContextAccess();\n return readContext(context, observedBits);\n },\n useCallback: function (callback, deps) {\n currentHookNameInDev = 'useCallback';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateCallback(callback, deps);\n },\n useContext: function (context, observedBits) {\n currentHookNameInDev = 'useContext';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return readContext(context, observedBits);\n },\n useEffect: function (create, deps) {\n currentHookNameInDev = 'useEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateEffect(create, deps);\n },\n useImperativeHandle: function (ref, create, deps) {\n currentHookNameInDev = 'useImperativeHandle';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateImperativeHandle(ref, create, deps);\n },\n useLayoutEffect: function (create, deps) {\n currentHookNameInDev = 'useLayoutEffect';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateLayoutEffect(create, deps);\n },\n useMemo: function (create, deps) {\n currentHookNameInDev = 'useMemo';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return updateMemo(create, deps);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useReducer: function (reducer, initialArg, init) {\n currentHookNameInDev = 'useReducer';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderReducer(reducer, initialArg, init);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useRef: function (initialValue) {\n currentHookNameInDev = 'useRef';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateRef();\n },\n useState: function (initialState) {\n currentHookNameInDev = 'useState';\n warnInvalidHookAccess();\n updateHookTypesDev();\n var prevDispatcher = ReactCurrentDispatcher$1.current;\n ReactCurrentDispatcher$1.current = InvalidNestedHooksDispatcherOnUpdateInDEV;\n\n try {\n return rerenderState(initialState);\n } finally {\n ReactCurrentDispatcher$1.current = prevDispatcher;\n }\n },\n useDebugValue: function (value, formatterFn) {\n currentHookNameInDev = 'useDebugValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateDebugValue();\n },\n useDeferredValue: function (value) {\n currentHookNameInDev = 'useDeferredValue';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderDeferredValue(value);\n },\n useTransition: function () {\n currentHookNameInDev = 'useTransition';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderTransition();\n },\n useMutableSource: function (source, getSnapshot, subscribe) {\n currentHookNameInDev = 'useMutableSource';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return updateMutableSource(source, getSnapshot, subscribe);\n },\n useOpaqueIdentifier: function () {\n currentHookNameInDev = 'useOpaqueIdentifier';\n warnInvalidHookAccess();\n updateHookTypesDev();\n return rerenderOpaqueIdentifier();\n },\n unstable_isNewReconciler: enableNewReconciler\n };\n}\n\nvar now$1 = Scheduler.unstable_now;\nvar commitTime = 0;\nvar profilerStartTime = -1;\n\nfunction getCommitTime() {\n return commitTime;\n}\n\nfunction recordCommitTime() {\n\n commitTime = now$1();\n}\n\nfunction startProfilerTimer(fiber) {\n\n profilerStartTime = now$1();\n\n if (fiber.actualStartTime < 0) {\n fiber.actualStartTime = now$1();\n }\n}\n\nfunction stopProfilerTimerIfRunning(fiber) {\n\n profilerStartTime = -1;\n}\n\nfunction stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTime) {\n\n if (profilerStartTime >= 0) {\n var elapsedTime = now$1() - profilerStartTime;\n fiber.actualDuration += elapsedTime;\n\n if (overrideBaseTime) {\n fiber.selfBaseDuration = elapsedTime;\n }\n\n profilerStartTime = -1;\n }\n}\n\nfunction transferActualDuration(fiber) {\n // Transfer time spent rendering these children so we don't lose it\n // after we rerender. This is used as a helper in special cases\n // where we should count the work of multiple passes.\n var child = fiber.child;\n\n while (child) {\n fiber.actualDuration += child.actualDuration;\n child = child.sibling;\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar didReceiveUpdate = false;\nvar didWarnAboutBadClass;\nvar didWarnAboutModulePatternComponent;\nvar didWarnAboutContextTypeOnFunctionComponent;\nvar didWarnAboutGetDerivedStateOnFunctionComponent;\nvar didWarnAboutFunctionRefs;\nvar didWarnAboutReassigningProps;\nvar didWarnAboutRevealOrder;\nvar didWarnAboutTailOptions;\n\n{\n didWarnAboutBadClass = {};\n didWarnAboutModulePatternComponent = {};\n didWarnAboutContextTypeOnFunctionComponent = {};\n didWarnAboutGetDerivedStateOnFunctionComponent = {};\n didWarnAboutFunctionRefs = {};\n didWarnAboutReassigningProps = false;\n didWarnAboutRevealOrder = {};\n didWarnAboutTailOptions = {};\n}\n\nfunction reconcileChildren(current, workInProgress, nextChildren, renderLanes) {\n if (current === null) {\n // If this is a fresh new component that hasn't been rendered yet, we\n // won't update its child set by applying minimal side-effects. Instead,\n // we will add them all to the child before it gets rendered. That means\n // we can optimize this reconciliation pass by not tracking side-effects.\n workInProgress.child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n // If the current child is the same as the work in progress, it means that\n // we haven't yet started any work on these children. Therefore, we use\n // the clone algorithm to create a copy of all the current children.\n // If we had any progressed work already, that is invalid at this point so\n // let's throw it out.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, nextChildren, renderLanes);\n }\n}\n\nfunction forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes) {\n // This function is fork of reconcileChildren. It's used in cases where we\n // want to reconcile without matching against the existing set. This has the\n // effect of all current children being unmounted; even if the type and key\n // are the same, the old child is unmounted and a new child is created.\n //\n // To do this, we're going to go through the reconcile algorithm twice. In\n // the first pass, we schedule a deletion for all the current children by\n // passing null.\n workInProgress.child = reconcileChildFibers(workInProgress, current.child, null, renderLanes); // In the second pass, we mount the new children. The trick here is that we\n // pass null in place of where we usually pass the current child set. This has\n // the effect of remounting all children regardless of whether their\n // identities match.\n\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n}\n\nfunction updateForwardRef(current, workInProgress, Component, nextProps, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens after the first render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var render = Component.render;\n var ref = workInProgress.ref; // The rest is a fork of updateFunctionComponent\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, render, nextProps, ref, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n if (current === null) {\n var type = Component.type;\n\n if (isSimpleFunctionComponent(type) && Component.compare === null && // SimpleMemoComponent codepath doesn't resolve outer props either.\n Component.defaultProps === undefined) {\n var resolvedType = type;\n\n {\n resolvedType = resolveFunctionForHotReloading(type);\n } // If this is a plain function component without default props,\n // and with only the default shallow comparison, we upgrade it\n // to a SimpleMemoComponent to allow fast path updates.\n\n\n workInProgress.tag = SimpleMemoComponent;\n workInProgress.type = resolvedType;\n\n {\n validateFunctionComponentInDev(workInProgress, type);\n }\n\n return updateSimpleMemoComponent(current, workInProgress, resolvedType, nextProps, updateLanes, renderLanes);\n }\n\n {\n var innerPropTypes = type.propTypes;\n\n if (innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(type));\n }\n }\n\n var child = createFiberFromTypeAndProps(Component.type, null, nextProps, workInProgress, workInProgress.mode, renderLanes);\n child.ref = workInProgress.ref;\n child.return = workInProgress;\n workInProgress.child = child;\n return child;\n }\n\n {\n var _type = Component.type;\n var _innerPropTypes = _type.propTypes;\n\n if (_innerPropTypes) {\n // Inner memo component props aren't currently validated in createElement.\n // We could move it there, but we'd still need this for lazy code path.\n checkPropTypes(_innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(_type));\n }\n }\n\n var currentChild = current.child; // This is always exactly one child\n\n if (!includesSomeLane(updateLanes, renderLanes)) {\n // This will be the props with resolved defaultProps,\n // unlike current.memoizedProps which will be the unresolved ones.\n var prevProps = currentChild.memoizedProps; // Default to shallow comparison\n\n var compare = Component.compare;\n compare = compare !== null ? compare : shallowEqual;\n\n if (compare(prevProps, nextProps) && current.ref === workInProgress.ref) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n var newChild = createWorkInProgress(currentChild, nextProps);\n newChild.ref = workInProgress.ref;\n newChild.return = workInProgress;\n workInProgress.child = newChild;\n return newChild;\n}\n\nfunction updateSimpleMemoComponent(current, workInProgress, Component, nextProps, updateLanes, renderLanes) {\n // TODO: current can be non-null here even if the component\n // hasn't yet mounted. This happens when the inner render suspends.\n // We'll need to figure out if this is fine or can cause issues.\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var outerMemoType = workInProgress.elementType;\n\n if (outerMemoType.$$typeof === REACT_LAZY_TYPE) {\n // We warn when you define propTypes on lazy()\n // so let's just skip over it to find memo() outer wrapper.\n // Inner props for memo are validated later.\n var lazyComponent = outerMemoType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n outerMemoType = init(payload);\n } catch (x) {\n outerMemoType = null;\n } // Inner propTypes will be validated in the function component path.\n\n\n var outerPropTypes = outerMemoType && outerMemoType.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, nextProps, // Resolved (SimpleMemoComponent has no defaultProps)\n 'prop', getComponentName(outerMemoType));\n }\n }\n }\n }\n\n if (current !== null) {\n var prevProps = current.memoizedProps;\n\n if (shallowEqual(prevProps, nextProps) && current.ref === workInProgress.ref && ( // Prevent bailout if the implementation changed due to hot reload.\n workInProgress.type === current.type )) {\n didReceiveUpdate = false;\n\n if (!includesSomeLane(renderLanes, updateLanes)) {\n // The pending lanes were cleared at the beginning of beginWork. We're\n // about to bail out, but there might be other lanes that weren't\n // included in the current render. Usually, the priority level of the\n // remaining updates is accumlated during the evaluation of the\n // component (i.e. when processing the update queue). But since since\n // we're bailing out early *without* evaluating the component, we need\n // to account for it here, too. Reset to the value of the current fiber.\n // NOTE: This only applies to SimpleMemoComponent, not MemoComponent,\n // because a MemoComponent fiber does not have hooks or an update queue;\n // rather, it wraps around an inner component, which may or may not\n // contains hooks.\n // TODO: Move the reset at in beginWork out of the common path so that\n // this is no longer necessary.\n workInProgress.lanes = current.lanes;\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n }\n }\n }\n\n return updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes);\n}\n\nfunction updateOffscreenComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n var prevState = current !== null ? current.memoizedState : null;\n\n if (nextProps.mode === 'hidden' || nextProps.mode === 'unstable-defer-without-hiding') {\n if ((workInProgress.mode & ConcurrentMode) === NoMode) {\n // In legacy sync mode, don't defer the subtree. Render it now.\n // TODO: Figure out what we should do in Blocking mode.\n var nextState = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = nextState;\n pushRenderLanes(workInProgress, renderLanes);\n } else if (!includesSomeLane(renderLanes, OffscreenLane)) {\n var nextBaseLanes;\n\n if (prevState !== null) {\n var prevBaseLanes = prevState.baseLanes;\n nextBaseLanes = mergeLanes(prevBaseLanes, renderLanes);\n } else {\n nextBaseLanes = renderLanes;\n } // Schedule this fiber to re-render at offscreen priority. Then bailout.\n\n\n {\n markSpawnedWork(OffscreenLane);\n }\n\n workInProgress.lanes = workInProgress.childLanes = laneToLanes(OffscreenLane);\n var _nextState = {\n baseLanes: nextBaseLanes\n };\n workInProgress.memoizedState = _nextState; // We're about to bail out, but we need to push this to the stack anyway\n // to avoid a push/pop misalignment.\n\n pushRenderLanes(workInProgress, nextBaseLanes);\n return null;\n } else {\n // Rendering at offscreen, so we can clear the base lanes.\n var _nextState2 = {\n baseLanes: NoLanes\n };\n workInProgress.memoizedState = _nextState2; // Push the lanes that were skipped when we bailed out.\n\n var subtreeRenderLanes = prevState !== null ? prevState.baseLanes : renderLanes;\n pushRenderLanes(workInProgress, subtreeRenderLanes);\n }\n } else {\n var _subtreeRenderLanes;\n\n if (prevState !== null) {\n _subtreeRenderLanes = mergeLanes(prevState.baseLanes, renderLanes); // Since we're not hidden anymore, reset the state\n\n workInProgress.memoizedState = null;\n } else {\n // We weren't previously hidden, and we still aren't, so there's nothing\n // special to do. Need to push to the stack regardless, though, to avoid\n // a push/pop misalignment.\n _subtreeRenderLanes = renderLanes;\n }\n\n pushRenderLanes(workInProgress, _subtreeRenderLanes);\n }\n\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n} // Note: These happen to have identical begin phases, for now. We shouldn't hold\n// ourselves to this constraint, though. If the behavior diverges, we should\n// fork the function.\n\n\nvar updateLegacyHiddenComponent = updateOffscreenComponent;\n\nfunction updateFragment(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateMode(current, workInProgress, renderLanes) {\n var nextChildren = workInProgress.pendingProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateProfiler(current, workInProgress, renderLanes) {\n {\n workInProgress.flags |= Update; // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n var nextProps = workInProgress.pendingProps;\n var nextChildren = nextProps.children;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markRef(current, workInProgress) {\n var ref = workInProgress.ref;\n\n if (current === null && ref !== null || current !== null && current.ref !== ref) {\n // Schedule a Ref effect\n workInProgress.flags |= Ref;\n }\n}\n\nfunction updateFunctionComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n }\n\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, true);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n var nextChildren;\n prepareToReadContext(workInProgress, renderLanes);\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n nextChildren = renderWithHooks(current, workInProgress, Component, nextProps, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n\n if (current !== null && !didReceiveUpdate) {\n bailoutHooks(current, workInProgress, renderLanes);\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateClassComponent(current, workInProgress, Component, nextProps, renderLanes) {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n // Lazy component props can't be validated in createElement\n // because they're only guaranteed to be resolved here.\n var innerPropTypes = Component.propTypes;\n\n if (innerPropTypes) {\n checkPropTypes(innerPropTypes, nextProps, // Resolved props\n 'prop', getComponentName(Component));\n }\n }\n } // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var instance = workInProgress.stateNode;\n var shouldUpdate;\n\n if (instance === null) {\n if (current !== null) {\n // A class component without an instance only mounts if it suspended\n // inside a non-concurrent tree, in an inconsistent state. We want to\n // treat it like a new mount, even though an empty version of it already\n // committed. Disconnect the alternate pointers.\n current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // In the initial pass we might need to construct the instance.\n\n\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n shouldUpdate = true;\n } else if (current === null) {\n // In a resume, we'll already have an instance we can reuse.\n shouldUpdate = resumeMountClassInstance(workInProgress, Component, nextProps, renderLanes);\n } else {\n shouldUpdate = updateClassInstance(current, workInProgress, Component, nextProps, renderLanes);\n }\n\n var nextUnitOfWork = finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes);\n\n {\n var inst = workInProgress.stateNode;\n\n if (shouldUpdate && inst.props !== nextProps) {\n if (!didWarnAboutReassigningProps) {\n error('It looks like %s is reassigning its own `this.props` while rendering. ' + 'This is not supported and can lead to confusing bugs.', getComponentName(workInProgress.type) || 'a component');\n }\n\n didWarnAboutReassigningProps = true;\n }\n }\n\n return nextUnitOfWork;\n}\n\nfunction finishClassComponent(current, workInProgress, Component, shouldUpdate, hasContext, renderLanes) {\n // Refs should update even if shouldComponentUpdate returns false\n markRef(current, workInProgress);\n var didCaptureError = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (!shouldUpdate && !didCaptureError) {\n // Context providers should defer to sCU for rendering\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, false);\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var instance = workInProgress.stateNode; // Rerender\n\n ReactCurrentOwner$1.current = workInProgress;\n var nextChildren;\n\n if (didCaptureError && typeof Component.getDerivedStateFromError !== 'function') {\n // If we captured an error, but getDerivedStateFromError is not defined,\n // unmount all the children. componentDidCatch will schedule an update to\n // re-render a fallback. This is temporary until we migrate everyone to\n // the new API.\n // TODO: Warn in a future release.\n nextChildren = null;\n\n {\n stopProfilerTimerIfRunning();\n }\n } else {\n {\n setIsRendering(true);\n nextChildren = instance.render();\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n instance.render();\n } finally {\n reenableLogs();\n }\n }\n\n setIsRendering(false);\n }\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n if (current !== null && didCaptureError) {\n // If we're recovering from an error, reconcile without reusing any of\n // the existing children. Conceptually, the normal children and the children\n // that are shown on error are two different sets, so we shouldn't reuse\n // normal children even if their identities match.\n forceUnmountCurrentAndReconcile(current, workInProgress, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n } // Memoize state using the values we just used to render.\n // TODO: Restructure so we never read values from the instance.\n\n\n workInProgress.memoizedState = instance.state; // The context might have changed so we need to recalculate it.\n\n if (hasContext) {\n invalidateContextProvider(workInProgress, Component, true);\n }\n\n return workInProgress.child;\n}\n\nfunction pushHostRootContext(workInProgress) {\n var root = workInProgress.stateNode;\n\n if (root.pendingContext) {\n pushTopLevelContextObject(workInProgress, root.pendingContext, root.pendingContext !== root.context);\n } else if (root.context) {\n // Should always be set\n pushTopLevelContextObject(workInProgress, root.context, false);\n }\n\n pushHostContainer(workInProgress, root.containerInfo);\n}\n\nfunction updateHostRoot(current, workInProgress, renderLanes) {\n pushHostRootContext(workInProgress);\n var updateQueue = workInProgress.updateQueue;\n\n if (!(current !== null && updateQueue !== null)) {\n {\n throw Error( \"If the root does not have an updateQueue, we should have already bailed out. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var nextProps = workInProgress.pendingProps;\n var prevState = workInProgress.memoizedState;\n var prevChildren = prevState !== null ? prevState.element : null;\n cloneUpdateQueue(current, workInProgress);\n processUpdateQueue(workInProgress, nextProps, null, renderLanes);\n var nextState = workInProgress.memoizedState; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n var nextChildren = nextState.element;\n\n if (nextChildren === prevChildren) {\n resetHydrationState();\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n\n var root = workInProgress.stateNode;\n\n if (root.hydrate && enterHydrationState(workInProgress)) {\n // If we don't have any current children this might be the first pass.\n // We always try to hydrate. If this isn't a hydration pass there won't\n // be any children to hydrate which is effectively the same thing as\n // not hydrating.\n {\n var mutableSourceEagerHydrationData = root.mutableSourceEagerHydrationData;\n\n if (mutableSourceEagerHydrationData != null) {\n for (var i = 0; i < mutableSourceEagerHydrationData.length; i += 2) {\n var mutableSource = mutableSourceEagerHydrationData[i];\n var version = mutableSourceEagerHydrationData[i + 1];\n setWorkInProgressVersion(mutableSource, version);\n }\n }\n }\n\n var child = mountChildFibers(workInProgress, null, nextChildren, renderLanes);\n workInProgress.child = child;\n var node = child;\n\n while (node) {\n // Mark each child as hydrating. This is a fast path to know whether this\n // tree is part of a hydrating tree. This is used to determine if a child\n // node has fully mounted yet, and for scheduling event replaying.\n // Conceptually this is similar to Placement in that a new subtree is\n // inserted into the React tree here. It just happens to not need DOM\n // mutations because it already exists.\n node.flags = node.flags & ~Placement | Hydrating;\n node = node.sibling;\n }\n } else {\n // Otherwise reset hydration state in case we aborted and resumed another\n // root.\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n resetHydrationState();\n }\n\n return workInProgress.child;\n}\n\nfunction updateHostComponent(current, workInProgress, renderLanes) {\n pushHostContext(workInProgress);\n\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n }\n\n var type = workInProgress.type;\n var nextProps = workInProgress.pendingProps;\n var prevProps = current !== null ? current.memoizedProps : null;\n var nextChildren = nextProps.children;\n var isDirectTextChild = shouldSetTextContent(type, nextProps);\n\n if (isDirectTextChild) {\n // We special case a direct text child of a host node. This is a common\n // case. We won't handle it as a reified child. We will instead handle\n // this in the host environment that also has access to this prop. That\n // avoids allocating another HostText fiber and traversing it.\n nextChildren = null;\n } else if (prevProps !== null && shouldSetTextContent(type, prevProps)) {\n // If we're switching from a direct text child to a normal child, or to\n // empty, we need to schedule the text content to be reset.\n workInProgress.flags |= ContentReset;\n }\n\n markRef(current, workInProgress);\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction updateHostText(current, workInProgress) {\n if (current === null) {\n tryToClaimNextHydratableInstance(workInProgress);\n } // Nothing to do here. This is terminal. We'll do the completion step\n // immediately after.\n\n\n return null;\n}\n\nfunction mountLazyComponent(_current, workInProgress, elementType, updateLanes, renderLanes) {\n if (_current !== null) {\n // A lazy component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var lazyComponent = elementType;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n var Component = init(payload); // Store the unwrapped component in the type.\n\n workInProgress.type = Component;\n var resolvedTag = workInProgress.tag = resolveLazyComponentTag(Component);\n var resolvedProps = resolveDefaultProps(Component, props);\n var child;\n\n switch (resolvedTag) {\n case FunctionComponent:\n {\n {\n validateFunctionComponentInDev(workInProgress, Component);\n workInProgress.type = Component = resolveFunctionForHotReloading(Component);\n }\n\n child = updateFunctionComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ClassComponent:\n {\n {\n workInProgress.type = Component = resolveClassForHotReloading(Component);\n }\n\n child = updateClassComponent(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case ForwardRef:\n {\n {\n workInProgress.type = Component = resolveForwardRefForHotReloading(Component);\n }\n\n child = updateForwardRef(null, workInProgress, Component, resolvedProps, renderLanes);\n return child;\n }\n\n case MemoComponent:\n {\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = Component.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, resolvedProps, // Resolved for outer only\n 'prop', getComponentName(Component));\n }\n }\n }\n\n child = updateMemoComponent(null, workInProgress, Component, resolveDefaultProps(Component.type, resolvedProps), // The inner type can have defaults too\n updateLanes, renderLanes);\n return child;\n }\n }\n\n var hint = '';\n\n {\n if (Component !== null && typeof Component === 'object' && Component.$$typeof === REACT_LAZY_TYPE) {\n hint = ' Did you wrap a component in React.lazy() more than once?';\n }\n } // This message intentionally doesn't mention ForwardRef or MemoComponent\n // because the fact that it's a separate type of work is an\n // implementation detail.\n\n\n {\n {\n throw Error( \"Element type is invalid. Received a promise that resolves to: \" + Component + \". Lazy element type must resolve to a class or function.\" + hint );\n }\n }\n}\n\nfunction mountIncompleteClassComponent(_current, workInProgress, Component, nextProps, renderLanes) {\n if (_current !== null) {\n // An incomplete component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n } // Promote the fiber to a class and try rendering again.\n\n\n workInProgress.tag = ClassComponent; // The rest of this function is a fork of `updateClassComponent`\n // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n constructClassInstance(workInProgress, Component, nextProps);\n mountClassInstance(workInProgress, Component, nextProps, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n}\n\nfunction mountIndeterminateComponent(_current, workInProgress, Component, renderLanes) {\n if (_current !== null) {\n // An indeterminate component only mounts if it suspended inside a non-\n // concurrent tree, in an inconsistent state. We want to treat it like\n // a new mount, even though an empty version of it already committed.\n // Disconnect the alternate pointers.\n _current.alternate = null;\n workInProgress.alternate = null; // Since this is conceptually a new fiber, schedule a Placement effect\n\n workInProgress.flags |= Placement;\n }\n\n var props = workInProgress.pendingProps;\n var context;\n\n {\n var unmaskedContext = getUnmaskedContext(workInProgress, Component, false);\n context = getMaskedContext(workInProgress, unmaskedContext);\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var value;\n\n {\n if (Component.prototype && typeof Component.prototype.render === 'function') {\n var componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutBadClass[componentName]) {\n error(\"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', componentName, componentName);\n\n didWarnAboutBadClass[componentName] = true;\n }\n }\n\n if (workInProgress.mode & StrictMode) {\n ReactStrictModeWarnings.recordLegacyContextWarning(workInProgress, null);\n }\n\n setIsRendering(true);\n ReactCurrentOwner$1.current = workInProgress;\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n\n {\n // Support for module components is deprecated and is removed behind a flag.\n // Whether or not it would crash later, we want to show a good message in DEV first.\n if (typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n var _componentName = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName, _componentName, _componentName);\n\n didWarnAboutModulePatternComponent[_componentName] = true;\n }\n }\n }\n\n if ( // Run these checks in production only if the flag is off.\n // Eventually we'll delete this branch altogether.\n typeof value === 'object' && value !== null && typeof value.render === 'function' && value.$$typeof === undefined) {\n {\n var _componentName2 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutModulePatternComponent[_componentName2]) {\n error('The <%s /> component appears to be a function component that returns a class instance. ' + 'Change %s to a class that extends React.Component instead. ' + \"If you can't use a class try assigning the prototype on the function as a workaround. \" + \"`%s.prototype = React.Component.prototype`. Don't use an arrow function since it \" + 'cannot be called with `new` by React.', _componentName2, _componentName2, _componentName2);\n\n didWarnAboutModulePatternComponent[_componentName2] = true;\n }\n } // Proceed under the assumption that this is a class instance\n\n\n workInProgress.tag = ClassComponent; // Throw out any hooks that were used.\n\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null; // Push context providers early to prevent context stack mismatches.\n // During mounting we don't know the child context yet as the instance doesn't exist.\n // We will invalidate the child context in finishClassComponent() right after rendering.\n\n var hasContext = false;\n\n if (isContextProvider(Component)) {\n hasContext = true;\n pushContextProvider(workInProgress);\n } else {\n hasContext = false;\n }\n\n workInProgress.memoizedState = value.state !== null && value.state !== undefined ? value.state : null;\n initializeUpdateQueue(workInProgress);\n var getDerivedStateFromProps = Component.getDerivedStateFromProps;\n\n if (typeof getDerivedStateFromProps === 'function') {\n applyDerivedStateFromProps(workInProgress, Component, getDerivedStateFromProps, props);\n }\n\n adoptClassInstance(workInProgress, value);\n mountClassInstance(workInProgress, Component, props, renderLanes);\n return finishClassComponent(null, workInProgress, Component, true, hasContext, renderLanes);\n } else {\n // Proceed under the assumption that this is a function component\n workInProgress.tag = FunctionComponent;\n\n {\n\n if ( workInProgress.mode & StrictMode) {\n disableLogs();\n\n try {\n value = renderWithHooks(null, workInProgress, Component, props, context, renderLanes);\n } finally {\n reenableLogs();\n }\n }\n }\n\n reconcileChildren(null, workInProgress, value, renderLanes);\n\n {\n validateFunctionComponentInDev(workInProgress, Component);\n }\n\n return workInProgress.child;\n }\n}\n\nfunction validateFunctionComponentInDev(workInProgress, Component) {\n {\n if (Component) {\n if (Component.childContextTypes) {\n error('%s(...): childContextTypes cannot be defined on a function component.', Component.displayName || Component.name || 'Component');\n }\n }\n\n if (workInProgress.ref !== null) {\n var info = '';\n var ownerName = getCurrentFiberOwnerNameInDevOrNull();\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n\n var warningKey = ownerName || workInProgress._debugID || '';\n var debugSource = workInProgress._debugSource;\n\n if (debugSource) {\n warningKey = debugSource.fileName + ':' + debugSource.lineNumber;\n }\n\n if (!didWarnAboutFunctionRefs[warningKey]) {\n didWarnAboutFunctionRefs[warningKey] = true;\n\n error('Function components cannot be given refs. ' + 'Attempts to access this ref will fail. ' + 'Did you mean to use React.forwardRef()?%s', info);\n }\n }\n\n if (typeof Component.getDerivedStateFromProps === 'function') {\n var _componentName3 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3]) {\n error('%s: Function components do not support getDerivedStateFromProps.', _componentName3);\n\n didWarnAboutGetDerivedStateOnFunctionComponent[_componentName3] = true;\n }\n }\n\n if (typeof Component.contextType === 'object' && Component.contextType !== null) {\n var _componentName4 = getComponentName(Component) || 'Unknown';\n\n if (!didWarnAboutContextTypeOnFunctionComponent[_componentName4]) {\n error('%s: Function components do not support contextType.', _componentName4);\n\n didWarnAboutContextTypeOnFunctionComponent[_componentName4] = true;\n }\n }\n }\n}\n\nvar SUSPENDED_MARKER = {\n dehydrated: null,\n retryLane: NoLane\n};\n\nfunction mountSuspenseOffscreenState(renderLanes) {\n return {\n baseLanes: renderLanes\n };\n}\n\nfunction updateSuspenseOffscreenState(prevOffscreenState, renderLanes) {\n return {\n baseLanes: mergeLanes(prevOffscreenState.baseLanes, renderLanes)\n };\n} // TODO: Probably should inline this back\n\n\nfunction shouldRemainOnFallback(suspenseContext, current, workInProgress, renderLanes) {\n // If we're already showing a fallback, there are cases where we need to\n // remain on that fallback regardless of whether the content has resolved.\n // For example, SuspenseList coordinates when nested content appears.\n if (current !== null) {\n var suspenseState = current.memoizedState;\n\n if (suspenseState === null) {\n // Currently showing content. Don't hide it, even if ForceSuspenseFallack\n // is true. More precise name might be \"ForceRemainSuspenseFallback\".\n // Note: This is a factoring smell. Can't remain on a fallback if there's\n // no fallback to remain on.\n return false;\n }\n } // Not currently showing content. Consult the Suspense context.\n\n\n return hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n}\n\nfunction getRemainingWorkInPrimaryTree(current, renderLanes) {\n // TODO: Should not remove render lanes that were pinged during this render\n return removeLanes(current.childLanes, renderLanes);\n}\n\nfunction updateSuspenseComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps; // This is used by DevTools to force a boundary to suspend.\n\n {\n if (shouldSuspend(workInProgress)) {\n workInProgress.flags |= DidCapture;\n }\n }\n\n var suspenseContext = suspenseStackCursor.current;\n var showFallback = false;\n var didSuspend = (workInProgress.flags & DidCapture) !== NoFlags;\n\n if (didSuspend || shouldRemainOnFallback(suspenseContext, current)) {\n // Something in this boundary's subtree already suspended. Switch to\n // rendering the fallback children.\n showFallback = true;\n workInProgress.flags &= ~DidCapture;\n } else {\n // Attempting the main content\n if (current === null || current.memoizedState !== null) {\n // This is a new mount or this boundary is already showing a fallback state.\n // Mark this subtree context as having at least one invisible parent that could\n // handle the fallback state.\n // Boundaries without fallbacks or should be avoided are not considered since\n // they cannot handle preferred fallback states.\n if (nextProps.fallback !== undefined && nextProps.unstable_avoidThisFallback !== true) {\n suspenseContext = addSubtreeSuspenseContext(suspenseContext, InvisibleParentSuspenseContext);\n }\n }\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n pushSuspenseContext(workInProgress, suspenseContext); // OK, the next part is confusing. We're about to reconcile the Suspense\n // boundary's children. This involves some custom reconcilation logic. Two\n // main reasons this is so complicated.\n //\n // First, Legacy Mode has different semantics for backwards compatibility. The\n // primary tree will commit in an inconsistent state, so when we do the\n // second pass to render the fallback, we do some exceedingly, uh, clever\n // hacks to make that not totally break. Like transferring effects and\n // deletions from hidden tree. In Concurrent Mode, it's much simpler,\n // because we bailout on the primary tree completely and leave it in its old\n // state, no effects. Same as what we do for Offscreen (except that\n // Offscreen doesn't have the first render pass).\n //\n // Second is hydration. During hydration, the Suspense fiber has a slightly\n // different layout, where the child points to a dehydrated fragment, which\n // contains the DOM rendered by the server.\n //\n // Third, even if you set all that aside, Suspense is like error boundaries in\n // that we first we try to render one tree, and if that fails, we render again\n // and switch to a different tree. Like a try/catch block. So we have to track\n // which branch we're currently rendering. Ideally we would model this using\n // a stack.\n\n if (current === null) {\n // Initial mount\n // If we're currently hydrating, try to hydrate this boundary.\n // But only if this has a fallback.\n if (nextProps.fallback !== undefined) {\n tryToClaimNextHydratableInstance(workInProgress); // This could've been a dehydrated suspense component.\n }\n\n var nextPrimaryChildren = nextProps.children;\n var nextFallbackChildren = nextProps.fallback;\n\n if (showFallback) {\n var fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n var primaryChildFragment = workInProgress.child;\n primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return fallbackFragment;\n } else if (typeof nextProps.unstable_expectedLoadTime === 'number') {\n // This is a CPU-bound tree. Skip this tree and show a placeholder to\n // unblock the surrounding content. Then immediately retry after the\n // initial commit.\n var _fallbackFragment = mountSuspenseFallbackChildren(workInProgress, nextPrimaryChildren, nextFallbackChildren, renderLanes);\n\n var _primaryChildFragment = workInProgress.child;\n _primaryChildFragment.memoizedState = mountSuspenseOffscreenState(renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER; // Since nothing actually suspended, there will nothing to ping this to\n // get it started back up to attempt the next item. While in terms of\n // priority this work has the same priority as this current render, it's\n // not part of the same transition once the transition has committed. If\n // it's sync, we still want to yield so that it can be painted.\n // Conceptually, this is really the same as pinging. We can use any\n // RetryLane even if it's the one currently rendering since we're leaving\n // it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n\n return _fallbackFragment;\n } else {\n return mountSuspensePrimaryChildren(workInProgress, nextPrimaryChildren, renderLanes);\n }\n } else {\n // This is an update.\n // If the current fiber has a SuspenseState, that means it's already showing\n // a fallback.\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n\n if (showFallback) {\n var _nextFallbackChildren2 = nextProps.fallback;\n var _nextPrimaryChildren2 = nextProps.children;\n\n var _fallbackChildFragment = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren2, _nextFallbackChildren2, renderLanes);\n\n var _primaryChildFragment3 = workInProgress.child;\n var prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment3.memoizedState = prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(prevOffscreenState, renderLanes);\n _primaryChildFragment3.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes);\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment;\n } else {\n var _nextPrimaryChildren3 = nextProps.children;\n\n var _primaryChildFragment4 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren3, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment4;\n }\n } else {\n // The current tree is not already showing a fallback.\n if (showFallback) {\n // Timed out.\n var _nextFallbackChildren3 = nextProps.fallback;\n var _nextPrimaryChildren4 = nextProps.children;\n\n var _fallbackChildFragment2 = updateSuspenseFallbackChildren(current, workInProgress, _nextPrimaryChildren4, _nextFallbackChildren3, renderLanes);\n\n var _primaryChildFragment5 = workInProgress.child;\n var _prevOffscreenState = current.child.memoizedState;\n _primaryChildFragment5.memoizedState = _prevOffscreenState === null ? mountSuspenseOffscreenState(renderLanes) : updateSuspenseOffscreenState(_prevOffscreenState, renderLanes);\n _primaryChildFragment5.childLanes = getRemainingWorkInPrimaryTree(current, renderLanes); // Skip the primary children, and continue working on the\n // fallback children.\n\n workInProgress.memoizedState = SUSPENDED_MARKER;\n return _fallbackChildFragment2;\n } else {\n // Still haven't timed out. Continue rendering the children, like we\n // normally do.\n var _nextPrimaryChildren5 = nextProps.children;\n\n var _primaryChildFragment6 = updateSuspensePrimaryChildren(current, workInProgress, _nextPrimaryChildren5, renderLanes);\n\n workInProgress.memoizedState = null;\n return _primaryChildFragment6;\n }\n }\n }\n}\n\nfunction mountSuspensePrimaryChildren(workInProgress, primaryChildren, renderLanes) {\n var mode = workInProgress.mode;\n var primaryChildProps = {\n mode: 'visible',\n children: primaryChildren\n };\n var primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, renderLanes, null);\n primaryChildFragment.return = workInProgress;\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction mountSuspenseFallbackChildren(workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var progressedPrimaryFragment = workInProgress.child;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n var fallbackChildFragment;\n\n if ((mode & BlockingMode) === NoMode && progressedPrimaryFragment !== null) {\n // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = 0;\n primaryChildFragment.treeBaseDuration = 0;\n }\n\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n } else {\n primaryChildFragment = createFiberFromOffscreen(primaryChildProps, mode, NoLanes, null);\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null);\n }\n\n primaryChildFragment.return = workInProgress;\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction createWorkInProgressOffscreenFiber(current, offscreenProps) {\n // The props argument to `createWorkInProgress` is `any` typed, so we use this\n // wrapper function to constrain it.\n return createWorkInProgress(current, offscreenProps);\n}\n\nfunction updateSuspensePrimaryChildren(current, workInProgress, primaryChildren, renderLanes) {\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, {\n mode: 'visible',\n children: primaryChildren\n });\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n primaryChildFragment.lanes = renderLanes;\n }\n\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = null;\n\n if (currentFallbackChildFragment !== null) {\n // Delete the fallback child fragment\n currentFallbackChildFragment.nextEffect = null;\n currentFallbackChildFragment.flags = Deletion;\n workInProgress.firstEffect = workInProgress.lastEffect = currentFallbackChildFragment;\n }\n\n workInProgress.child = primaryChildFragment;\n return primaryChildFragment;\n}\n\nfunction updateSuspenseFallbackChildren(current, workInProgress, primaryChildren, fallbackChildren, renderLanes) {\n var mode = workInProgress.mode;\n var currentPrimaryChildFragment = current.child;\n var currentFallbackChildFragment = currentPrimaryChildFragment.sibling;\n var primaryChildProps = {\n mode: 'hidden',\n children: primaryChildren\n };\n var primaryChildFragment;\n\n if ( // In legacy mode, we commit the primary tree as if it successfully\n // completed, even though it's in an inconsistent state.\n (mode & BlockingMode) === NoMode && // Make sure we're on the second pass, i.e. the primary child fragment was\n // already cloned. In legacy mode, the only case where this isn't true is\n // when DevTools forces us to display a fallback; we skip the first render\n // pass entirely and go straight to rendering the fallback. (In Concurrent\n // Mode, SuspenseList can also trigger this scenario, but this is a legacy-\n // only codepath.)\n workInProgress.child !== currentPrimaryChildFragment) {\n var progressedPrimaryFragment = workInProgress.child;\n primaryChildFragment = progressedPrimaryFragment;\n primaryChildFragment.childLanes = NoLanes;\n primaryChildFragment.pendingProps = primaryChildProps;\n\n if ( workInProgress.mode & ProfileMode) {\n // Reset the durations from the first pass so they aren't included in the\n // final amounts. This seems counterintuitive, since we're intentionally\n // not measuring part of the render phase, but this makes it match what we\n // do in Concurrent Mode.\n primaryChildFragment.actualDuration = 0;\n primaryChildFragment.actualStartTime = -1;\n primaryChildFragment.selfBaseDuration = currentPrimaryChildFragment.selfBaseDuration;\n primaryChildFragment.treeBaseDuration = currentPrimaryChildFragment.treeBaseDuration;\n } // The fallback fiber was added as a deletion effect during the first pass.\n // However, since we're going to remain on the fallback, we no longer want\n // to delete it. So we need to remove it from the list. Deletions are stored\n // on the same list as effects. We want to keep the effects from the primary\n // tree. So we copy the primary child fragment's effect list, which does not\n // include the fallback deletion effect.\n\n\n var progressedLastEffect = primaryChildFragment.lastEffect;\n\n if (progressedLastEffect !== null) {\n workInProgress.firstEffect = primaryChildFragment.firstEffect;\n workInProgress.lastEffect = progressedLastEffect;\n progressedLastEffect.nextEffect = null;\n } else {\n // TODO: Reset this somewhere else? Lol legacy mode is so weird.\n workInProgress.firstEffect = workInProgress.lastEffect = null;\n }\n } else {\n primaryChildFragment = createWorkInProgressOffscreenFiber(currentPrimaryChildFragment, primaryChildProps);\n }\n\n var fallbackChildFragment;\n\n if (currentFallbackChildFragment !== null) {\n fallbackChildFragment = createWorkInProgress(currentFallbackChildFragment, fallbackChildren);\n } else {\n fallbackChildFragment = createFiberFromFragment(fallbackChildren, mode, renderLanes, null); // Needs a placement effect because the parent (the Suspense boundary) already\n // mounted but this is a new fiber.\n\n fallbackChildFragment.flags |= Placement;\n }\n\n fallbackChildFragment.return = workInProgress;\n primaryChildFragment.return = workInProgress;\n primaryChildFragment.sibling = fallbackChildFragment;\n workInProgress.child = primaryChildFragment;\n return fallbackChildFragment;\n}\n\nfunction scheduleWorkOnFiber(fiber, renderLanes) {\n fiber.lanes = mergeLanes(fiber.lanes, renderLanes);\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, renderLanes);\n }\n\n scheduleWorkOnParentPath(fiber.return, renderLanes);\n}\n\nfunction propagateSuspenseContextChange(workInProgress, firstChild, renderLanes) {\n // Mark any Suspense boundaries with fallbacks as having work to do.\n // If they were previously forced into fallbacks, they may now be able\n // to unblock.\n var node = firstChild;\n\n while (node !== null) {\n if (node.tag === SuspenseComponent) {\n var state = node.memoizedState;\n\n if (state !== null) {\n scheduleWorkOnFiber(node, renderLanes);\n }\n } else if (node.tag === SuspenseListComponent) {\n // If the tail is hidden there might not be an Suspense boundaries\n // to schedule work on. In this case we have to schedule it on the\n // list itself.\n // We don't have to traverse to the children of the list since\n // the list will propagate the change when it rerenders.\n scheduleWorkOnFiber(node, renderLanes);\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction findLastContentRow(firstChild) {\n // This is going to find the last row among these children that is already\n // showing content on the screen, as opposed to being in fallback state or\n // new. If a row has multiple Suspense boundaries, any of them being in the\n // fallback state, counts as the whole row being in a fallback state.\n // Note that the \"rows\" will be workInProgress, but any nested children\n // will still be current since we haven't rendered them yet. The mounted\n // order may not be the same as the new order. We use the new order.\n var row = firstChild;\n var lastContentRow = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n lastContentRow = row;\n }\n\n row = row.sibling;\n }\n\n return lastContentRow;\n}\n\nfunction validateRevealOrder(revealOrder) {\n {\n if (revealOrder !== undefined && revealOrder !== 'forwards' && revealOrder !== 'backwards' && revealOrder !== 'together' && !didWarnAboutRevealOrder[revealOrder]) {\n didWarnAboutRevealOrder[revealOrder] = true;\n\n if (typeof revealOrder === 'string') {\n switch (revealOrder.toLowerCase()) {\n case 'together':\n case 'forwards':\n case 'backwards':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'Use lowercase \"%s\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n case 'forward':\n case 'backward':\n {\n error('\"%s\" is not a valid value for revealOrder on <SuspenseList />. ' + 'React uses the -s suffix in the spelling. Use \"%ss\" instead.', revealOrder, revealOrder.toLowerCase());\n\n break;\n }\n\n default:\n error('\"%s\" is not a supported revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n\n break;\n }\n } else {\n error('%s is not a supported value for revealOrder on <SuspenseList />. ' + 'Did you mean \"together\", \"forwards\" or \"backwards\"?', revealOrder);\n }\n }\n }\n}\n\nfunction validateTailOptions(tailMode, revealOrder) {\n {\n if (tailMode !== undefined && !didWarnAboutTailOptions[tailMode]) {\n if (tailMode !== 'collapsed' && tailMode !== 'hidden') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('\"%s\" is not a supported value for tail on <SuspenseList />. ' + 'Did you mean \"collapsed\" or \"hidden\"?', tailMode);\n } else if (revealOrder !== 'forwards' && revealOrder !== 'backwards') {\n didWarnAboutTailOptions[tailMode] = true;\n\n error('<SuspenseList tail=\"%s\" /> is only valid if revealOrder is ' + '\"forwards\" or \"backwards\". ' + 'Did you mean to specify revealOrder=\"forwards\"?', tailMode);\n }\n }\n }\n}\n\nfunction validateSuspenseListNestedChild(childSlot, index) {\n {\n var isArray = Array.isArray(childSlot);\n var isIterable = !isArray && typeof getIteratorFn(childSlot) === 'function';\n\n if (isArray || isIterable) {\n var type = isArray ? 'array' : 'iterable';\n\n error('A nested %s was passed to row #%s in <SuspenseList />. Wrap it in ' + 'an additional SuspenseList to configure its revealOrder: ' + '<SuspenseList revealOrder=...> ... ' + '<SuspenseList revealOrder=...>{%s}</SuspenseList> ... ' + '</SuspenseList>', type, index, type);\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction validateSuspenseListChildren(children, revealOrder) {\n {\n if ((revealOrder === 'forwards' || revealOrder === 'backwards') && children !== undefined && children !== null && children !== false) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n if (!validateSuspenseListNestedChild(children[i], i)) {\n return;\n }\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var childrenIterator = iteratorFn.call(children);\n\n if (childrenIterator) {\n var step = childrenIterator.next();\n var _i = 0;\n\n for (; !step.done; step = childrenIterator.next()) {\n if (!validateSuspenseListNestedChild(step.value, _i)) {\n return;\n }\n\n _i++;\n }\n }\n } else {\n error('A single row was passed to a <SuspenseList revealOrder=\"%s\" />. ' + 'This is not useful since it needs multiple rows. ' + 'Did you mean to pass multiple children or an array?', revealOrder);\n }\n }\n }\n }\n}\n\nfunction initSuspenseListRenderState(workInProgress, isBackwards, tail, lastContentRow, tailMode, lastEffectBeforeRendering) {\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n workInProgress.memoizedState = {\n isBackwards: isBackwards,\n rendering: null,\n renderingStartTime: 0,\n last: lastContentRow,\n tail: tail,\n tailMode: tailMode,\n lastEffect: lastEffectBeforeRendering\n };\n } else {\n // We can reuse the existing object from previous renders.\n renderState.isBackwards = isBackwards;\n renderState.rendering = null;\n renderState.renderingStartTime = 0;\n renderState.last = lastContentRow;\n renderState.tail = tail;\n renderState.tailMode = tailMode;\n renderState.lastEffect = lastEffectBeforeRendering;\n }\n} // This can end up rendering this component multiple passes.\n// The first pass splits the children fibers into two sets. A head and tail.\n// We first render the head. If anything is in fallback state, we do another\n// pass through beginWork to rerender all children (including the tail) with\n// the force suspend context. If the first render didn't have anything in\n// in fallback state. Then we render each row in the tail one-by-one.\n// That happens in the completeWork phase without going back to beginWork.\n\n\nfunction updateSuspenseListComponent(current, workInProgress, renderLanes) {\n var nextProps = workInProgress.pendingProps;\n var revealOrder = nextProps.revealOrder;\n var tailMode = nextProps.tail;\n var newChildren = nextProps.children;\n validateRevealOrder(revealOrder);\n validateTailOptions(tailMode, revealOrder);\n validateSuspenseListChildren(newChildren, revealOrder);\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n var suspenseContext = suspenseStackCursor.current;\n var shouldForceFallback = hasSuspenseContext(suspenseContext, ForceSuspenseFallback);\n\n if (shouldForceFallback) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n workInProgress.flags |= DidCapture;\n } else {\n var didSuspendBefore = current !== null && (current.flags & DidCapture) !== NoFlags;\n\n if (didSuspendBefore) {\n // If we previously forced a fallback, we need to schedule work\n // on any nested boundaries to let them know to try to render\n // again. This is the same as context updating.\n propagateSuspenseContextChange(workInProgress, workInProgress.child, renderLanes);\n }\n\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext);\n\n if ((workInProgress.mode & BlockingMode) === NoMode) {\n // In legacy mode, SuspenseList doesn't work so we just\n // use make it a noop by treating it as the default revealOrder.\n workInProgress.memoizedState = null;\n } else {\n switch (revealOrder) {\n case 'forwards':\n {\n var lastContentRow = findLastContentRow(workInProgress.child);\n var tail;\n\n if (lastContentRow === null) {\n // The whole list is part of the tail.\n // TODO: We could fast path by just rendering the tail now.\n tail = workInProgress.child;\n workInProgress.child = null;\n } else {\n // Disconnect the tail rows after the content row.\n // We're going to render them separately later.\n tail = lastContentRow.sibling;\n lastContentRow.sibling = null;\n }\n\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n tail, lastContentRow, tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'backwards':\n {\n // We're going to find the first row that has existing content.\n // At the same time we're going to reverse the list of everything\n // we pass in the meantime. That's going to be our tail in reverse\n // order.\n var _tail = null;\n var row = workInProgress.child;\n workInProgress.child = null;\n\n while (row !== null) {\n var currentRow = row.alternate; // New rows can't be content rows.\n\n if (currentRow !== null && findFirstSuspended(currentRow) === null) {\n // This is the beginning of the main content.\n workInProgress.child = row;\n break;\n }\n\n var nextRow = row.sibling;\n row.sibling = _tail;\n _tail = row;\n row = nextRow;\n } // TODO: If workInProgress.child is null, we can continue on the tail immediately.\n\n\n initSuspenseListRenderState(workInProgress, true, // isBackwards\n _tail, null, // last\n tailMode, workInProgress.lastEffect);\n break;\n }\n\n case 'together':\n {\n initSuspenseListRenderState(workInProgress, false, // isBackwards\n null, // tail\n null, // last\n undefined, workInProgress.lastEffect);\n break;\n }\n\n default:\n {\n // The default reveal order is the same as not having\n // a boundary.\n workInProgress.memoizedState = null;\n }\n }\n }\n\n return workInProgress.child;\n}\n\nfunction updatePortalComponent(current, workInProgress, renderLanes) {\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n var nextChildren = workInProgress.pendingProps;\n\n if (current === null) {\n // Portals are special because we don't append the children during mount\n // but at commit. Therefore we need to track insertions which the normal\n // flow doesn't do during mount. This doesn't happen at the root because\n // the root always starts with a \"current\" with a null child.\n // TODO: Consider unifying this with how the root works.\n workInProgress.child = reconcileChildFibers(workInProgress, null, nextChildren, renderLanes);\n } else {\n reconcileChildren(current, workInProgress, nextChildren, renderLanes);\n }\n\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingNoValuePropOnContextProvider = false;\n\nfunction updateContextProvider(current, workInProgress, renderLanes) {\n var providerType = workInProgress.type;\n var context = providerType._context;\n var newProps = workInProgress.pendingProps;\n var oldProps = workInProgress.memoizedProps;\n var newValue = newProps.value;\n\n {\n if (!('value' in newProps)) {\n if (!hasWarnedAboutUsingNoValuePropOnContextProvider) {\n hasWarnedAboutUsingNoValuePropOnContextProvider = true;\n\n error('The `value` prop is required for the `<Context.Provider>`. Did you misspell it or forget to pass it?');\n }\n }\n\n var providerPropTypes = workInProgress.type.propTypes;\n\n if (providerPropTypes) {\n checkPropTypes(providerPropTypes, newProps, 'prop', 'Context.Provider');\n }\n }\n\n pushProvider(workInProgress, newValue);\n\n if (oldProps !== null) {\n var oldValue = oldProps.value;\n var changedBits = calculateChangedBits(context, newValue, oldValue);\n\n if (changedBits === 0) {\n // No change. Bailout early if children are the same.\n if (oldProps.children === newProps.children && !hasContextChanged()) {\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n }\n } else {\n // The context value changed. Search for matching consumers and schedule\n // them to update.\n propagateContextChange(workInProgress, context, changedBits, renderLanes);\n }\n }\n\n var newChildren = newProps.children;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\nfunction updateContextConsumer(current, workInProgress, renderLanes) {\n var context = workInProgress.type; // The logic below for Context differs depending on PROD or DEV mode. In\n // DEV mode, we create a separate object for Context.Consumer that acts\n // like a proxy to Context. This proxy object adds unnecessary code in PROD\n // so we use the old behaviour (Context.Consumer references Context) to\n // reduce size and overhead. The separate object references context via\n // a property called \"_context\", which also gives us the ability to check\n // in DEV mode if this property exists or not and warn if it does not.\n\n {\n if (context._context === undefined) {\n // This may be because it's a Context (rather than a Consumer).\n // Or it may be because it's older React where they're the same thing.\n // We only want to warn if we're sure it's a new React.\n if (context !== context.Consumer) {\n if (!hasWarnedAboutUsingContextAsConsumer) {\n hasWarnedAboutUsingContextAsConsumer = true;\n\n error('Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n }\n } else {\n context = context._context;\n }\n }\n\n var newProps = workInProgress.pendingProps;\n var render = newProps.children;\n\n {\n if (typeof render !== 'function') {\n error('A context consumer was rendered with multiple children, or a child ' + \"that isn't a function. A context consumer expects a single child \" + 'that is a function. If you did pass a function, make sure there ' + 'is no trailing or leading whitespace around it.');\n }\n }\n\n prepareToReadContext(workInProgress, renderLanes);\n var newValue = readContext(context, newProps.unstable_observedBits);\n var newChildren;\n\n {\n ReactCurrentOwner$1.current = workInProgress;\n setIsRendering(true);\n newChildren = render(newValue);\n setIsRendering(false);\n } // React DevTools reads this flag.\n\n\n workInProgress.flags |= PerformedWork;\n reconcileChildren(current, workInProgress, newChildren, renderLanes);\n return workInProgress.child;\n}\n\nfunction markWorkInProgressReceivedUpdate() {\n didReceiveUpdate = true;\n}\n\nfunction bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes) {\n if (current !== null) {\n // Reuse previous dependencies\n workInProgress.dependencies = current.dependencies;\n }\n\n {\n // Don't update \"base\" render times for bailouts.\n stopProfilerTimerIfRunning();\n }\n\n markSkippedUpdateLanes(workInProgress.lanes); // Check if the children have any pending work.\n\n if (!includesSomeLane(renderLanes, workInProgress.childLanes)) {\n // The children don't have any work either. We can skip them.\n // TODO: Once we add back resuming, we should check if the children are\n // a work-in-progress set. If so, we need to transfer their effects.\n return null;\n } else {\n // This fiber doesn't have work, but its subtree does. Clone the child\n // fibers and continue.\n cloneChildFibers(current, workInProgress);\n return workInProgress.child;\n }\n}\n\nfunction remountFiber(current, oldWorkInProgress, newWorkInProgress) {\n {\n var returnFiber = oldWorkInProgress.return;\n\n if (returnFiber === null) {\n throw new Error('Cannot swap the root fiber.');\n } // Disconnect from the old current.\n // It will get deleted.\n\n\n current.alternate = null;\n oldWorkInProgress.alternate = null; // Connect to the new tree.\n\n newWorkInProgress.index = oldWorkInProgress.index;\n newWorkInProgress.sibling = oldWorkInProgress.sibling;\n newWorkInProgress.return = oldWorkInProgress.return;\n newWorkInProgress.ref = oldWorkInProgress.ref; // Replace the child/sibling pointers above it.\n\n if (oldWorkInProgress === returnFiber.child) {\n returnFiber.child = newWorkInProgress;\n } else {\n var prevSibling = returnFiber.child;\n\n if (prevSibling === null) {\n throw new Error('Expected parent to have a child.');\n }\n\n while (prevSibling.sibling !== oldWorkInProgress) {\n prevSibling = prevSibling.sibling;\n\n if (prevSibling === null) {\n throw new Error('Expected to find the previous sibling.');\n }\n }\n\n prevSibling.sibling = newWorkInProgress;\n } // Delete the old fiber and place the new one.\n // Since the old fiber is disconnected, we have to schedule it manually.\n\n\n var last = returnFiber.lastEffect;\n\n if (last !== null) {\n last.nextEffect = current;\n returnFiber.lastEffect = current;\n } else {\n returnFiber.firstEffect = returnFiber.lastEffect = current;\n }\n\n current.nextEffect = null;\n current.flags = Deletion;\n newWorkInProgress.flags |= Placement; // Restart work from the new fiber.\n\n return newWorkInProgress;\n }\n}\n\nfunction beginWork(current, workInProgress, renderLanes) {\n var updateLanes = workInProgress.lanes;\n\n {\n if (workInProgress._debugNeedsRemount && current !== null) {\n // This will restart the begin phase with a new fiber.\n return remountFiber(current, workInProgress, createFiberFromTypeAndProps(workInProgress.type, workInProgress.key, workInProgress.pendingProps, workInProgress._debugOwner || null, workInProgress.mode, workInProgress.lanes));\n }\n }\n\n if (current !== null) {\n var oldProps = current.memoizedProps;\n var newProps = workInProgress.pendingProps;\n\n if (oldProps !== newProps || hasContextChanged() || ( // Force a re-render if the implementation changed due to hot reload:\n workInProgress.type !== current.type )) {\n // If props or context changed, mark the fiber as having performed work.\n // This may be unset if the props are determined to be equal later (memo).\n didReceiveUpdate = true;\n } else if (!includesSomeLane(renderLanes, updateLanes)) {\n didReceiveUpdate = false; // This fiber does not have any pending work. Bailout without entering\n // the begin phase. There's still some bookkeeping we that needs to be done\n // in this optimized path, mostly pushing stuff onto the stack.\n\n switch (workInProgress.tag) {\n case HostRoot:\n pushHostRootContext(workInProgress);\n resetHydrationState();\n break;\n\n case HostComponent:\n pushHostContext(workInProgress);\n break;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n pushContextProvider(workInProgress);\n }\n\n break;\n }\n\n case HostPortal:\n pushHostContainer(workInProgress, workInProgress.stateNode.containerInfo);\n break;\n\n case ContextProvider:\n {\n var newValue = workInProgress.memoizedProps.value;\n pushProvider(workInProgress, newValue);\n break;\n }\n\n case Profiler:\n {\n // Profiler should only call onRender when one of its descendants actually rendered.\n var hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (hasChildWork) {\n workInProgress.flags |= Update;\n } // Reset effect durations for the next eventual effect phase.\n // These are reset during render to allow the DevTools commit hook a chance to read them,\n\n\n var stateNode = workInProgress.stateNode;\n stateNode.effectDuration = 0;\n stateNode.passiveEffectDuration = 0;\n }\n\n break;\n\n case SuspenseComponent:\n {\n var state = workInProgress.memoizedState;\n\n if (state !== null) {\n // whether to retry the primary children, or to skip over it and\n // go straight to the fallback. Check the priority of the primary\n // child fragment.\n\n\n var primaryChildFragment = workInProgress.child;\n var primaryChildLanes = primaryChildFragment.childLanes;\n\n if (includesSomeLane(renderLanes, primaryChildLanes)) {\n // The primary children have pending work. Use the normal path\n // to attempt to render the primary children again.\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n } else {\n // The primary child fragment does not have pending work marked\n // on it\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current)); // The primary children do not have pending work with sufficient\n // priority. Bailout.\n\n var child = bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n\n if (child !== null) {\n // The fallback children have pending work. Skip over the\n // primary children and work on the fallback.\n return child.sibling;\n } else {\n return null;\n }\n }\n } else {\n pushSuspenseContext(workInProgress, setDefaultShallowSuspenseContext(suspenseStackCursor.current));\n }\n\n break;\n }\n\n case SuspenseListComponent:\n {\n var didSuspendBefore = (current.flags & DidCapture) !== NoFlags;\n\n var _hasChildWork = includesSomeLane(renderLanes, workInProgress.childLanes);\n\n if (didSuspendBefore) {\n if (_hasChildWork) {\n // If something was in fallback state last time, and we have all the\n // same children then we're still in progressive loading state.\n // Something might get unblocked by state updates or retries in the\n // tree which will affect the tail. So we need to use the normal\n // path to compute the correct tail.\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n } // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n\n\n workInProgress.flags |= DidCapture;\n } // If nothing suspended before and we're rendering the same children,\n // then the tail doesn't matter. Anything new that suspends will work\n // in the \"together\" mode, so we can continue from the state we had.\n\n\n var renderState = workInProgress.memoizedState;\n\n if (renderState !== null) {\n // Reset to the \"together\" mode in case we've started a different\n // update in the past but didn't complete it.\n renderState.rendering = null;\n renderState.tail = null;\n renderState.lastEffect = null;\n }\n\n pushSuspenseContext(workInProgress, suspenseStackCursor.current);\n\n if (_hasChildWork) {\n break;\n } else {\n // If none of the children had any work, that means that none of\n // them got retried so they'll still be blocked in the same way\n // as before. We can fast bail out.\n return null;\n }\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n // Need to check if the tree still needs to be deferred. This is\n // almost identical to the logic used in the normal update path,\n // so we'll just enter that. The only difference is we'll bail out\n // at the next level instead of this one, because the child props\n // have not changed. Which is fine.\n // TODO: Probably should refactor `beginWork` to split the bailout\n // path from the normal path. I'm tempted to do a labeled break here\n // but I won't :)\n workInProgress.lanes = NoLanes;\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n }\n\n return bailoutOnAlreadyFinishedWork(current, workInProgress, renderLanes);\n } else {\n if ((current.flags & ForceUpdateForLegacySuspense) !== NoFlags) {\n // This is a special case that only exists for legacy mode.\n // See https://github.com/facebook/react/pull/19216.\n didReceiveUpdate = true;\n } else {\n // An update was scheduled on this fiber, but there are no new props\n // nor legacy context. Set this to false. If an update queue or context\n // consumer produces a changed value, it will set this to true. Otherwise,\n // the component will assume the children have not changed and bail out.\n didReceiveUpdate = false;\n }\n }\n } else {\n didReceiveUpdate = false;\n } // Before entering the begin phase, clear pending update priority.\n // TODO: This assumes that we're about to evaluate the component and process\n // the update queue. However, there's an exception: SimpleMemoComponent\n // sometimes bails out later in the begin phase. This indicates that we should\n // move this assignment out of the common path and into each branch.\n\n\n workInProgress.lanes = NoLanes;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n {\n return mountIndeterminateComponent(current, workInProgress, workInProgress.type, renderLanes);\n }\n\n case LazyComponent:\n {\n var elementType = workInProgress.elementType;\n return mountLazyComponent(current, workInProgress, elementType, updateLanes, renderLanes);\n }\n\n case FunctionComponent:\n {\n var _Component = workInProgress.type;\n var unresolvedProps = workInProgress.pendingProps;\n var resolvedProps = workInProgress.elementType === _Component ? unresolvedProps : resolveDefaultProps(_Component, unresolvedProps);\n return updateFunctionComponent(current, workInProgress, _Component, resolvedProps, renderLanes);\n }\n\n case ClassComponent:\n {\n var _Component2 = workInProgress.type;\n var _unresolvedProps = workInProgress.pendingProps;\n\n var _resolvedProps = workInProgress.elementType === _Component2 ? _unresolvedProps : resolveDefaultProps(_Component2, _unresolvedProps);\n\n return updateClassComponent(current, workInProgress, _Component2, _resolvedProps, renderLanes);\n }\n\n case HostRoot:\n return updateHostRoot(current, workInProgress, renderLanes);\n\n case HostComponent:\n return updateHostComponent(current, workInProgress, renderLanes);\n\n case HostText:\n return updateHostText(current, workInProgress);\n\n case SuspenseComponent:\n return updateSuspenseComponent(current, workInProgress, renderLanes);\n\n case HostPortal:\n return updatePortalComponent(current, workInProgress, renderLanes);\n\n case ForwardRef:\n {\n var type = workInProgress.type;\n var _unresolvedProps2 = workInProgress.pendingProps;\n\n var _resolvedProps2 = workInProgress.elementType === type ? _unresolvedProps2 : resolveDefaultProps(type, _unresolvedProps2);\n\n return updateForwardRef(current, workInProgress, type, _resolvedProps2, renderLanes);\n }\n\n case Fragment:\n return updateFragment(current, workInProgress, renderLanes);\n\n case Mode:\n return updateMode(current, workInProgress, renderLanes);\n\n case Profiler:\n return updateProfiler(current, workInProgress, renderLanes);\n\n case ContextProvider:\n return updateContextProvider(current, workInProgress, renderLanes);\n\n case ContextConsumer:\n return updateContextConsumer(current, workInProgress, renderLanes);\n\n case MemoComponent:\n {\n var _type2 = workInProgress.type;\n var _unresolvedProps3 = workInProgress.pendingProps; // Resolve outer props first, then resolve inner props.\n\n var _resolvedProps3 = resolveDefaultProps(_type2, _unresolvedProps3);\n\n {\n if (workInProgress.type !== workInProgress.elementType) {\n var outerPropTypes = _type2.propTypes;\n\n if (outerPropTypes) {\n checkPropTypes(outerPropTypes, _resolvedProps3, // Resolved for outer only\n 'prop', getComponentName(_type2));\n }\n }\n }\n\n _resolvedProps3 = resolveDefaultProps(_type2.type, _resolvedProps3);\n return updateMemoComponent(current, workInProgress, _type2, _resolvedProps3, updateLanes, renderLanes);\n }\n\n case SimpleMemoComponent:\n {\n return updateSimpleMemoComponent(current, workInProgress, workInProgress.type, workInProgress.pendingProps, updateLanes, renderLanes);\n }\n\n case IncompleteClassComponent:\n {\n var _Component3 = workInProgress.type;\n var _unresolvedProps4 = workInProgress.pendingProps;\n\n var _resolvedProps4 = workInProgress.elementType === _Component3 ? _unresolvedProps4 : resolveDefaultProps(_Component3, _unresolvedProps4);\n\n return mountIncompleteClassComponent(current, workInProgress, _Component3, _resolvedProps4, renderLanes);\n }\n\n case SuspenseListComponent:\n {\n return updateSuspenseListComponent(current, workInProgress, renderLanes);\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n {\n\n break;\n }\n\n case OffscreenComponent:\n {\n return updateOffscreenComponent(current, workInProgress, renderLanes);\n }\n\n case LegacyHiddenComponent:\n {\n return updateLegacyHiddenComponent(current, workInProgress, renderLanes);\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction markUpdate(workInProgress) {\n // Tag the fiber with an update effect. This turns a Placement into\n // a PlacementAndUpdate.\n workInProgress.flags |= Update;\n}\n\nfunction markRef$1(workInProgress) {\n workInProgress.flags |= Ref;\n}\n\nvar appendAllChildren;\nvar updateHostContainer;\nvar updateHostComponent$1;\nvar updateHostText$1;\n\n{\n // Mutation mode\n appendAllChildren = function (parent, workInProgress, needsVisibilityToggle, isHidden) {\n // We only have the top Fiber that was created but we need recurse down its\n // children to find all the terminal nodes.\n var node = workInProgress.child;\n\n while (node !== null) {\n if (node.tag === HostComponent || node.tag === HostText) {\n appendInitialChild(parent, node.stateNode);\n } else if (node.tag === HostPortal) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === workInProgress) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === workInProgress) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n };\n\n updateHostContainer = function (workInProgress) {// Noop\n };\n\n updateHostComponent$1 = function (current, workInProgress, type, newProps, rootContainerInstance) {\n // If we have an alternate, that means this is an update and we need to\n // schedule a side-effect to do the updates.\n var oldProps = current.memoizedProps;\n\n if (oldProps === newProps) {\n // In mutation mode, this is sufficient for a bailout because\n // we won't touch this node even if children changed.\n return;\n } // If we get updated because one of our children updated, we don't\n // have newProps so we'll have to reuse them.\n // TODO: Split the update API as separate for the props vs. children.\n // Even better would be if children weren't special cased at all tho.\n\n\n var instance = workInProgress.stateNode;\n var currentHostContext = getHostContext(); // TODO: Experiencing an error where oldProps is null. Suggests a host\n // component is hitting the resume path. Figure out why. Possibly\n // related to `hidden`.\n\n var updatePayload = prepareUpdate(instance, type, oldProps, newProps, rootContainerInstance, currentHostContext); // TODO: Type this specific to this type of component.\n\n workInProgress.updateQueue = updatePayload; // If the update payload indicates that there is a change or if there\n // is a new ref we mark this as an update. All the work is done in commitWork.\n\n if (updatePayload) {\n markUpdate(workInProgress);\n }\n };\n\n updateHostText$1 = function (current, workInProgress, oldText, newText) {\n // If the text differs, mark it as an update. All the work in done in commitWork.\n if (oldText !== newText) {\n markUpdate(workInProgress);\n }\n };\n}\n\nfunction cutOffTailIfNeeded(renderState, hasRenderedATailFallback) {\n if (getIsHydrating()) {\n // If we're hydrating, we should consume as many items as we can\n // so we don't leave any behind.\n return;\n }\n\n switch (renderState.tailMode) {\n case 'hidden':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var tailNode = renderState.tail;\n var lastTailNode = null;\n\n while (tailNode !== null) {\n if (tailNode.alternate !== null) {\n lastTailNode = tailNode;\n }\n\n tailNode = tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (lastTailNode === null) {\n // All remaining items in the tail are insertions.\n renderState.tail = null;\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n lastTailNode.sibling = null;\n }\n\n break;\n }\n\n case 'collapsed':\n {\n // Any insertions at the end of the tail list after this point\n // should be invisible. If there are already mounted boundaries\n // anything before them are not considered for collapsing.\n // Therefore we need to go through the whole tail to find if\n // there are any.\n var _tailNode = renderState.tail;\n var _lastTailNode = null;\n\n while (_tailNode !== null) {\n if (_tailNode.alternate !== null) {\n _lastTailNode = _tailNode;\n }\n\n _tailNode = _tailNode.sibling;\n } // Next we're simply going to delete all insertions after the\n // last rendered item.\n\n\n if (_lastTailNode === null) {\n // All remaining items in the tail are insertions.\n if (!hasRenderedATailFallback && renderState.tail !== null) {\n // We suspended during the head. We want to show at least one\n // row at the tail. So we'll keep on and cut off the rest.\n renderState.tail.sibling = null;\n } else {\n renderState.tail = null;\n }\n } else {\n // Detach the insertion after the last node that was already\n // inserted.\n _lastTailNode.sibling = null;\n }\n\n break;\n }\n }\n}\n\nfunction completeWork(current, workInProgress, renderLanes) {\n var newProps = workInProgress.pendingProps;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case LazyComponent:\n case SimpleMemoComponent:\n case FunctionComponent:\n case ForwardRef:\n case Fragment:\n case Mode:\n case Profiler:\n case ContextConsumer:\n case MemoComponent:\n return null;\n\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var fiberRoot = workInProgress.stateNode;\n\n if (fiberRoot.pendingContext) {\n fiberRoot.context = fiberRoot.pendingContext;\n fiberRoot.pendingContext = null;\n }\n\n if (current === null || current.child === null) {\n // If we hydrated, pop so that we can delete any remaining children\n // that weren't hydrated.\n var wasHydrated = popHydrationState(workInProgress);\n\n if (wasHydrated) {\n // If we hydrated, then we'll need to schedule an update for\n // the commit side-effects on the root.\n markUpdate(workInProgress);\n } else if (!fiberRoot.hydrate) {\n // Schedule an effect to clear this container at the start of the next commit.\n // This handles the case of React rendering into a container with previous children.\n // It's also safe to do for updates too, because current.child would only be null\n // if the previous render was null (so the the container would already be empty).\n workInProgress.flags |= Snapshot;\n }\n }\n\n updateHostContainer(workInProgress);\n return null;\n }\n\n case HostComponent:\n {\n popHostContext(workInProgress);\n var rootContainerInstance = getRootHostContainer();\n var type = workInProgress.type;\n\n if (current !== null && workInProgress.stateNode != null) {\n updateHostComponent$1(current, workInProgress, type, newProps, rootContainerInstance);\n\n if (current.ref !== workInProgress.ref) {\n markRef$1(workInProgress);\n }\n } else {\n if (!newProps) {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n\n return null;\n }\n\n var currentHostContext = getHostContext(); // TODO: Move createInstance to beginWork and keep it on a context\n // \"stack\" as the parent. Then append children as we go in beginWork\n // or completeWork depending on whether we want to add them top->down or\n // bottom->up. Top->down is faster in IE11.\n\n var _wasHydrated = popHydrationState(workInProgress);\n\n if (_wasHydrated) {\n // TODO: Move this and createInstance step into the beginPhase\n // to consolidate.\n if (prepareToHydrateHostInstance(workInProgress, rootContainerInstance, currentHostContext)) {\n // If changes to the hydrated node need to be applied at the\n // commit-phase we mark this as such.\n markUpdate(workInProgress);\n }\n } else {\n var instance = createInstance(type, newProps, rootContainerInstance, currentHostContext, workInProgress);\n appendAllChildren(instance, workInProgress, false, false);\n workInProgress.stateNode = instance; // Certain renderers require commit-time effects for initial mount.\n // (eg DOM renderer supports auto-focus for certain elements).\n // Make sure such renderers get scheduled for later work.\n\n if (finalizeInitialChildren(instance, type, newProps, rootContainerInstance)) {\n markUpdate(workInProgress);\n }\n }\n\n if (workInProgress.ref !== null) {\n // If there is a ref on a host node we need to schedule a callback\n markRef$1(workInProgress);\n }\n }\n\n return null;\n }\n\n case HostText:\n {\n var newText = newProps;\n\n if (current && workInProgress.stateNode != null) {\n var oldText = current.memoizedProps; // If we have an alternate, that means this is an update and we need\n // to schedule a side-effect to do the updates.\n\n updateHostText$1(current, workInProgress, oldText, newText);\n } else {\n if (typeof newText !== 'string') {\n if (!(workInProgress.stateNode !== null)) {\n {\n throw Error( \"We must have new props for new mounts. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // This can happen when we abort work.\n\n }\n\n var _rootContainerInstance = getRootHostContainer();\n\n var _currentHostContext = getHostContext();\n\n var _wasHydrated2 = popHydrationState(workInProgress);\n\n if (_wasHydrated2) {\n if (prepareToHydrateHostTextInstance(workInProgress)) {\n markUpdate(workInProgress);\n }\n } else {\n workInProgress.stateNode = createTextInstance(newText, _rootContainerInstance, _currentHostContext, workInProgress);\n }\n }\n\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n var nextState = workInProgress.memoizedState;\n\n if ((workInProgress.flags & DidCapture) !== NoFlags) {\n // Something suspended. Re-render with the fallback children.\n workInProgress.lanes = renderLanes; // Do not reset the effect list.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n var nextDidTimeout = nextState !== null;\n var prevDidTimeout = false;\n\n if (current === null) {\n if (workInProgress.memoizedProps.fallback !== undefined) {\n popHydrationState(workInProgress);\n }\n } else {\n var prevState = current.memoizedState;\n prevDidTimeout = prevState !== null;\n }\n\n if (nextDidTimeout && !prevDidTimeout) {\n // If this subtreee is running in blocking mode we can suspend,\n // otherwise we won't suspend.\n // TODO: This will still suspend a synchronous tree if anything\n // in the concurrent tree already suspended during this render.\n // This is a known bug.\n if ((workInProgress.mode & BlockingMode) !== NoMode) {\n // TODO: Move this back to throwException because this is too late\n // if this is a large tree which is common for initial loads. We\n // don't know if we should restart a render or not until we get\n // this marker, and this is too late.\n // If this render already had a ping or lower pri updates,\n // and this is the first time we know we're going to suspend we\n // should be able to immediately restart from within throwException.\n var hasInvisibleChildContext = current === null && workInProgress.memoizedProps.unstable_avoidThisFallback !== true;\n\n if (hasInvisibleChildContext || hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext)) {\n // If this was in an invisible tree or a new render, then showing\n // this boundary is ok.\n renderDidSuspend();\n } else {\n // Otherwise, we're going to have to hide content so we should\n // suspend for longer if possible.\n renderDidSuspendDelayIfPossible();\n }\n }\n }\n\n {\n // TODO: Only schedule updates if these values are non equal, i.e. it changed.\n if (nextDidTimeout || prevDidTimeout) {\n // If this boundary just timed out, schedule an effect to attach a\n // retry listener to the promise. This flag is also used to hide the\n // primary children. In mutation mode, we also need the flag to\n // *unhide* children that were previously hidden, so check if this\n // is currently timed out, too.\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n updateHostContainer(workInProgress);\n\n if (current === null) {\n preparePortalMount(workInProgress.stateNode.containerInfo);\n }\n\n return null;\n\n case ContextProvider:\n // Pop provider fiber\n popProvider(workInProgress);\n return null;\n\n case IncompleteClassComponent:\n {\n // Same as class component case. I put it down here so that the tags are\n // sequential to ensure this switch is compiled to a jump table.\n var _Component = workInProgress.type;\n\n if (isContextProvider(_Component)) {\n popContext(workInProgress);\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress);\n var renderState = workInProgress.memoizedState;\n\n if (renderState === null) {\n // We're running in the default, \"independent\" mode.\n // We don't do anything in this mode.\n return null;\n }\n\n var didSuspendAlready = (workInProgress.flags & DidCapture) !== NoFlags;\n var renderedTail = renderState.rendering;\n\n if (renderedTail === null) {\n // We just rendered the head.\n if (!didSuspendAlready) {\n // This is the first pass. We need to figure out if anything is still\n // suspended in the rendered set.\n // If new content unsuspended, but there's still some content that\n // didn't. Then we need to do a second pass that forces everything\n // to keep showing their fallbacks.\n // We might be suspended if something in this render pass suspended, or\n // something in the previous committed pass suspended. Otherwise,\n // there's no chance so we can skip the expensive call to\n // findFirstSuspended.\n var cannotBeSuspended = renderHasNotSuspendedYet() && (current === null || (current.flags & DidCapture) === NoFlags);\n\n if (!cannotBeSuspended) {\n var row = workInProgress.child;\n\n while (row !== null) {\n var suspended = findFirstSuspended(row);\n\n if (suspended !== null) {\n didSuspendAlready = true;\n workInProgress.flags |= DidCapture;\n cutOffTailIfNeeded(renderState, false); // If this is a newly suspended tree, it might not get committed as\n // part of the second pass. In that case nothing will subscribe to\n // its thennables. Instead, we'll transfer its thennables to the\n // SuspenseList so that it can retry if they resolve.\n // There might be multiple of these in the list but since we're\n // going to wait for all of them anyway, it doesn't really matter\n // which ones gets to ping. In theory we could get clever and keep\n // track of how many dependencies remain but it gets tricky because\n // in the meantime, we can add/remove/change items and dependencies.\n // We might bail out of the loop before finding any but that\n // doesn't matter since that means that the other boundaries that\n // we did find already has their listeners attached.\n\n var newThennables = suspended.updateQueue;\n\n if (newThennables !== null) {\n workInProgress.updateQueue = newThennables;\n workInProgress.flags |= Update;\n } // Rerender the whole list, but this time, we'll force fallbacks\n // to stay in place.\n // Reset the effect list before doing the second pass since that's now invalid.\n\n\n if (renderState.lastEffect === null) {\n workInProgress.firstEffect = null;\n }\n\n workInProgress.lastEffect = renderState.lastEffect; // Reset the child fibers to their original state.\n\n resetChildFibers(workInProgress, renderLanes); // Set up the Suspense Context to force suspense and immediately\n // rerender the children.\n\n pushSuspenseContext(workInProgress, setShallowSuspenseContext(suspenseStackCursor.current, ForceSuspenseFallback));\n return workInProgress.child;\n }\n\n row = row.sibling;\n }\n }\n\n if (renderState.tail !== null && now() > getRenderTargetTime()) {\n // We have already passed our CPU deadline but we still have rows\n // left in the tail. We'll just give up further attempts to render\n // the main content and only render fallbacks.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n } else {\n cutOffTailIfNeeded(renderState, false);\n } // Next we're going to render the tail.\n\n } else {\n // Append the rendered row to the child list.\n if (!didSuspendAlready) {\n var _suspended = findFirstSuspended(renderedTail);\n\n if (_suspended !== null) {\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true; // Ensure we transfer the update queue to the parent so that it doesn't\n // get lost if this row ends up dropped during a second pass.\n\n var _newThennables = _suspended.updateQueue;\n\n if (_newThennables !== null) {\n workInProgress.updateQueue = _newThennables;\n workInProgress.flags |= Update;\n }\n\n cutOffTailIfNeeded(renderState, true); // This might have been modified.\n\n if (renderState.tail === null && renderState.tailMode === 'hidden' && !renderedTail.alternate && !getIsHydrating() // We don't cut it if we're hydrating.\n ) {\n // We need to delete the row we just rendered.\n // Reset the effect list to what it was before we rendered this\n // child. The nested children have already appended themselves.\n var lastEffect = workInProgress.lastEffect = renderState.lastEffect; // Remove any effects that were appended after this point.\n\n if (lastEffect !== null) {\n lastEffect.nextEffect = null;\n } // We're done.\n\n\n return null;\n }\n } else if ( // The time it took to render last row is greater than the remaining\n // time we have to render. So rendering one more row would likely\n // exceed it.\n now() * 2 - renderState.renderingStartTime > getRenderTargetTime() && renderLanes !== OffscreenLane) {\n // We have now passed our CPU deadline and we'll just give up further\n // attempts to render the main content and only render fallbacks.\n // The assumption is that this is usually faster.\n workInProgress.flags |= DidCapture;\n didSuspendAlready = true;\n cutOffTailIfNeeded(renderState, false); // Since nothing actually suspended, there will nothing to ping this\n // to get it started back up to attempt the next item. While in terms\n // of priority this work has the same priority as this current render,\n // it's not part of the same transition once the transition has\n // committed. If it's sync, we still want to yield so that it can be\n // painted. Conceptually, this is really the same as pinging.\n // We can use any RetryLane even if it's the one currently rendering\n // since we're leaving it behind on this node.\n\n workInProgress.lanes = SomeRetryLane;\n\n {\n markSpawnedWork(SomeRetryLane);\n }\n }\n }\n\n if (renderState.isBackwards) {\n // The effect list of the backwards tail will have been added\n // to the end. This breaks the guarantee that life-cycles fire in\n // sibling order but that isn't a strong guarantee promised by React.\n // Especially since these might also just pop in during future commits.\n // Append to the beginning of the list.\n renderedTail.sibling = workInProgress.child;\n workInProgress.child = renderedTail;\n } else {\n var previousSibling = renderState.last;\n\n if (previousSibling !== null) {\n previousSibling.sibling = renderedTail;\n } else {\n workInProgress.child = renderedTail;\n }\n\n renderState.last = renderedTail;\n }\n }\n\n if (renderState.tail !== null) {\n // We still have tail rows to render.\n // Pop a row.\n var next = renderState.tail;\n renderState.rendering = next;\n renderState.tail = next.sibling;\n renderState.lastEffect = workInProgress.lastEffect;\n renderState.renderingStartTime = now();\n next.sibling = null; // Restore the context.\n // TODO: We can probably just avoid popping it instead and only\n // setting it the first time we go from not suspended to suspended.\n\n var suspenseContext = suspenseStackCursor.current;\n\n if (didSuspendAlready) {\n suspenseContext = setShallowSuspenseContext(suspenseContext, ForceSuspenseFallback);\n } else {\n suspenseContext = setDefaultShallowSuspenseContext(suspenseContext);\n }\n\n pushSuspenseContext(workInProgress, suspenseContext); // Do a pass over the next row.\n\n return next;\n }\n\n return null;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case Block:\n\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n popRenderLanes(workInProgress);\n\n if (current !== null) {\n var _nextState = workInProgress.memoizedState;\n var _prevState = current.memoizedState;\n var prevIsHidden = _prevState !== null;\n var nextIsHidden = _nextState !== null;\n\n if (prevIsHidden !== nextIsHidden && newProps.mode !== 'unstable-defer-without-hiding') {\n workInProgress.flags |= Update;\n }\n }\n\n return null;\n }\n }\n\n {\n {\n throw Error( \"Unknown unit of work tag (\" + workInProgress.tag + \"). This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction unwindWork(workInProgress, renderLanes) {\n switch (workInProgress.tag) {\n case ClassComponent:\n {\n var Component = workInProgress.type;\n\n if (isContextProvider(Component)) {\n popContext(workInProgress);\n }\n\n var flags = workInProgress.flags;\n\n if (flags & ShouldCapture) {\n workInProgress.flags = flags & ~ShouldCapture | DidCapture;\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case HostRoot:\n {\n popHostContainer(workInProgress);\n popTopLevelContextObject(workInProgress);\n resetWorkInProgressVersions();\n var _flags = workInProgress.flags;\n\n if (!((_flags & DidCapture) === NoFlags)) {\n {\n throw Error( \"The root failed to unmount after an error. This is likely a bug in React. Please file an issue.\" );\n }\n }\n\n workInProgress.flags = _flags & ~ShouldCapture | DidCapture;\n return workInProgress;\n }\n\n case HostComponent:\n {\n // TODO: popHydrationState\n popHostContext(workInProgress);\n return null;\n }\n\n case SuspenseComponent:\n {\n popSuspenseContext(workInProgress);\n\n var _flags2 = workInProgress.flags;\n\n if (_flags2 & ShouldCapture) {\n workInProgress.flags = _flags2 & ~ShouldCapture | DidCapture; // Captured a suspense effect. Re-render the boundary.\n\n if ( (workInProgress.mode & ProfileMode) !== NoMode) {\n transferActualDuration(workInProgress);\n }\n\n return workInProgress;\n }\n\n return null;\n }\n\n case SuspenseListComponent:\n {\n popSuspenseContext(workInProgress); // SuspenseList doesn't actually catch anything. It should've been\n // caught by a nested boundary. If not, it should bubble through.\n\n return null;\n }\n\n case HostPortal:\n popHostContainer(workInProgress);\n return null;\n\n case ContextProvider:\n popProvider(workInProgress);\n return null;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(workInProgress);\n return null;\n\n default:\n return null;\n }\n}\n\nfunction unwindInterruptedWork(interruptedWork) {\n switch (interruptedWork.tag) {\n case ClassComponent:\n {\n var childContextTypes = interruptedWork.type.childContextTypes;\n\n if (childContextTypes !== null && childContextTypes !== undefined) {\n popContext(interruptedWork);\n }\n\n break;\n }\n\n case HostRoot:\n {\n popHostContainer(interruptedWork);\n popTopLevelContextObject(interruptedWork);\n resetWorkInProgressVersions();\n break;\n }\n\n case HostComponent:\n {\n popHostContext(interruptedWork);\n break;\n }\n\n case HostPortal:\n popHostContainer(interruptedWork);\n break;\n\n case SuspenseComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case SuspenseListComponent:\n popSuspenseContext(interruptedWork);\n break;\n\n case ContextProvider:\n popProvider(interruptedWork);\n break;\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n popRenderLanes(interruptedWork);\n break;\n }\n}\n\nfunction createCapturedValue(value, source) {\n // If the value is an error, call this function immediately after it is thrown\n // so the stack is accurate.\n return {\n value: value,\n source: source,\n stack: getStackByFiberInDevAndProd(source)\n };\n}\n\n// This module is forked in different environments.\n// By default, return `true` to log errors to the console.\n// Forks can return `false` if this isn't desirable.\nfunction showErrorDialog(boundary, errorInfo) {\n return true;\n}\n\nfunction logCapturedError(boundary, errorInfo) {\n try {\n var logError = showErrorDialog(boundary, errorInfo); // Allow injected showErrorDialog() to prevent default console.error logging.\n // This enables renderers like ReactNative to better manage redbox behavior.\n\n if (logError === false) {\n return;\n }\n\n var error = errorInfo.value;\n\n if (true) {\n var source = errorInfo.source;\n var stack = errorInfo.stack;\n var componentStack = stack !== null ? stack : ''; // Browsers support silencing uncaught errors by calling\n // `preventDefault()` in window `error` handler.\n // We record this information as an expando on the error.\n\n if (error != null && error._suppressLogging) {\n if (boundary.tag === ClassComponent) {\n // The error is recoverable and was silenced.\n // Ignore it and don't print the stack addendum.\n // This is handy for testing error boundaries without noise.\n return;\n } // The error is fatal. Since the silencing might have\n // been accidental, we'll surface it anyway.\n // However, the browser would have silenced the original error\n // so we'll print it first, and then print the stack addendum.\n\n\n console['error'](error); // Don't transform to our wrapper\n // For a more detailed description of this block, see:\n // https://github.com/facebook/react/pull/13384\n }\n\n var componentName = source ? getComponentName(source.type) : null;\n var componentNameMessage = componentName ? \"The above error occurred in the <\" + componentName + \"> component:\" : 'The above error occurred in one of your React components:';\n var errorBoundaryMessage;\n var errorBoundaryName = getComponentName(boundary.type);\n\n if (errorBoundaryName) {\n errorBoundaryMessage = \"React will try to recreate this component tree from scratch \" + (\"using the error boundary you provided, \" + errorBoundaryName + \".\");\n } else {\n errorBoundaryMessage = 'Consider adding an error boundary to your tree to customize error handling behavior.\\n' + 'Visit https://reactjs.org/link/error-boundaries to learn more about error boundaries.';\n }\n\n var combinedMessage = componentNameMessage + \"\\n\" + componentStack + \"\\n\\n\" + (\"\" + errorBoundaryMessage); // In development, we provide our own message with just the component stack.\n // We don't include the original error message and JS stack because the browser\n // has already printed it. Even if the application swallows the error, it is still\n // displayed by the browser thanks to the DEV-only fake event trick in ReactErrorUtils.\n\n console['error'](combinedMessage); // Don't transform to our wrapper\n } else {\n // In production, we print the error directly.\n // This will include the message, the JS stack, and anything the browser wants to show.\n // We pass the error object instead of custom message so that the browser displays the error natively.\n console['error'](error); // Don't transform to our wrapper\n }\n } catch (e) {\n // This method must not throw, or React internal state will get messed up.\n // If console.error is overridden, or logCapturedError() shows a dialog that throws,\n // we want to report this error outside of the normal stack as a last resort.\n // https://github.com/facebook/react/issues/13188\n setTimeout(function () {\n throw e;\n });\n }\n}\n\nvar PossiblyWeakMap$1 = typeof WeakMap === 'function' ? WeakMap : Map;\n\nfunction createRootErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane); // Unmount the root by rendering null.\n\n update.tag = CaptureUpdate; // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: null\n };\n var error = errorInfo.value;\n\n update.callback = function () {\n onUncaughtError(error);\n logCapturedError(fiber, errorInfo);\n };\n\n return update;\n}\n\nfunction createClassErrorUpdate(fiber, errorInfo, lane) {\n var update = createUpdate(NoTimestamp, lane);\n update.tag = CaptureUpdate;\n var getDerivedStateFromError = fiber.type.getDerivedStateFromError;\n\n if (typeof getDerivedStateFromError === 'function') {\n var error$1 = errorInfo.value;\n\n update.payload = function () {\n logCapturedError(fiber, errorInfo);\n return getDerivedStateFromError(error$1);\n };\n }\n\n var inst = fiber.stateNode;\n\n if (inst !== null && typeof inst.componentDidCatch === 'function') {\n update.callback = function callback() {\n {\n markFailedErrorBoundaryForHotReloading(fiber);\n }\n\n if (typeof getDerivedStateFromError !== 'function') {\n // To preserve the preexisting retry behavior of error boundaries,\n // we keep track of which ones already failed during this batch.\n // This gets reset before we yield back to the browser.\n // TODO: Warn in strict mode if getDerivedStateFromError is\n // not defined.\n markLegacyErrorBoundaryAsFailed(this); // Only log here if componentDidCatch is the only error boundary method defined\n\n logCapturedError(fiber, errorInfo);\n }\n\n var error$1 = errorInfo.value;\n var stack = errorInfo.stack;\n this.componentDidCatch(error$1, {\n componentStack: stack !== null ? stack : ''\n });\n\n {\n if (typeof getDerivedStateFromError !== 'function') {\n // If componentDidCatch is the only error boundary method defined,\n // then it needs to call setState to recover from errors.\n // If no state update is scheduled then the boundary will swallow the error.\n if (!includesSomeLane(fiber.lanes, SyncLane)) {\n error('%s: Error boundaries should implement getDerivedStateFromError(). ' + 'In that method, return a state update to display an error message or fallback UI.', getComponentName(fiber.type) || 'Unknown');\n }\n }\n }\n };\n } else {\n update.callback = function () {\n markFailedErrorBoundaryForHotReloading(fiber);\n };\n }\n\n return update;\n}\n\nfunction attachPingListener(root, wakeable, lanes) {\n // Attach a listener to the promise to \"ping\" the root and retry. But only if\n // one does not already exist for the lanes we're currently rendering (which\n // acts like a \"thread ID\" here).\n var pingCache = root.pingCache;\n var threadIDs;\n\n if (pingCache === null) {\n pingCache = root.pingCache = new PossiblyWeakMap$1();\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n } else {\n threadIDs = pingCache.get(wakeable);\n\n if (threadIDs === undefined) {\n threadIDs = new Set();\n pingCache.set(wakeable, threadIDs);\n }\n }\n\n if (!threadIDs.has(lanes)) {\n // Memoize using the thread ID to prevent redundant listeners.\n threadIDs.add(lanes);\n var ping = pingSuspendedRoot.bind(null, root, wakeable, lanes);\n wakeable.then(ping, ping);\n }\n}\n\nfunction throwException(root, returnFiber, sourceFiber, value, rootRenderLanes) {\n // The source fiber did not complete.\n sourceFiber.flags |= Incomplete; // Its effect list is no longer valid.\n\n sourceFiber.firstEffect = sourceFiber.lastEffect = null;\n\n if (value !== null && typeof value === 'object' && typeof value.then === 'function') {\n // This is a wakeable.\n var wakeable = value;\n\n if ((sourceFiber.mode & BlockingMode) === NoMode) {\n // Reset the memoizedState to what it was before we attempted\n // to render it.\n var currentSource = sourceFiber.alternate;\n\n if (currentSource) {\n sourceFiber.updateQueue = currentSource.updateQueue;\n sourceFiber.memoizedState = currentSource.memoizedState;\n sourceFiber.lanes = currentSource.lanes;\n } else {\n sourceFiber.updateQueue = null;\n sourceFiber.memoizedState = null;\n }\n }\n\n var hasInvisibleParentBoundary = hasSuspenseContext(suspenseStackCursor.current, InvisibleParentSuspenseContext); // Schedule the nearest Suspense to re-render the timed out view.\n\n var _workInProgress = returnFiber;\n\n do {\n if (_workInProgress.tag === SuspenseComponent && shouldCaptureSuspense(_workInProgress, hasInvisibleParentBoundary)) {\n // Found the nearest boundary.\n // Stash the promise on the boundary fiber. If the boundary times out, we'll\n // attach another listener to flip the boundary back to its normal state.\n var wakeables = _workInProgress.updateQueue;\n\n if (wakeables === null) {\n var updateQueue = new Set();\n updateQueue.add(wakeable);\n _workInProgress.updateQueue = updateQueue;\n } else {\n wakeables.add(wakeable);\n } // If the boundary is outside of blocking mode, we should *not*\n // suspend the commit. Pretend as if the suspended component rendered\n // null and keep rendering. In the commit phase, we'll schedule a\n // subsequent synchronous update to re-render the Suspense.\n //\n // Note: It doesn't matter whether the component that suspended was\n // inside a blocking mode tree. If the Suspense is outside of it, we\n // should *not* suspend the commit.\n\n\n if ((_workInProgress.mode & BlockingMode) === NoMode) {\n _workInProgress.flags |= DidCapture;\n sourceFiber.flags |= ForceUpdateForLegacySuspense; // We're going to commit this fiber even though it didn't complete.\n // But we shouldn't call any lifecycle methods or callbacks. Remove\n // all lifecycle effect tags.\n\n sourceFiber.flags &= ~(LifecycleEffectMask | Incomplete);\n\n if (sourceFiber.tag === ClassComponent) {\n var currentSourceFiber = sourceFiber.alternate;\n\n if (currentSourceFiber === null) {\n // This is a new mount. Change the tag so it's not mistaken for a\n // completed class component. For example, we should not call\n // componentWillUnmount if it is deleted.\n sourceFiber.tag = IncompleteClassComponent;\n } else {\n // When we try rendering again, we should not reuse the current fiber,\n // since it's known to be in an inconsistent state. Use a force update to\n // prevent a bail out.\n var update = createUpdate(NoTimestamp, SyncLane);\n update.tag = ForceUpdate;\n enqueueUpdate(sourceFiber, update);\n }\n } // The source fiber did not complete. Mark it with Sync priority to\n // indicate that it still has pending work.\n\n\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, SyncLane); // Exit without suspending.\n\n return;\n } // Confirmed that the boundary is in a concurrent mode tree. Continue\n // with the normal suspend path.\n //\n // After this we'll use a set of heuristics to determine whether this\n // render pass will run to completion or restart or \"suspend\" the commit.\n // The actual logic for this is spread out in different places.\n //\n // This first principle is that if we're going to suspend when we complete\n // a root, then we should also restart if we get an update or ping that\n // might unsuspend it, and vice versa. The only reason to suspend is\n // because you think you might want to restart before committing. However,\n // it doesn't make sense to restart only while in the period we're suspended.\n //\n // Restarting too aggressively is also not good because it starves out any\n // intermediate loading state. So we use heuristics to determine when.\n // Suspense Heuristics\n //\n // If nothing threw a Promise or all the same fallbacks are already showing,\n // then don't suspend/restart.\n //\n // If this is an initial render of a new tree of Suspense boundaries and\n // those trigger a fallback, then don't suspend/restart. We want to ensure\n // that we can show the initial loading state as quickly as possible.\n //\n // If we hit a \"Delayed\" case, such as when we'd switch from content back into\n // a fallback, then we should always suspend/restart. Transitions apply\n // to this case. If none is defined, JND is used instead.\n //\n // If we're already showing a fallback and it gets \"retried\", allowing us to show\n // another level, but there's still an inner boundary that would show a fallback,\n // then we suspend/restart for 500ms since the last time we showed a fallback\n // anywhere in the tree. This effectively throttles progressive loading into a\n // consistent train of commits. This also gives us an opportunity to restart to\n // get to the completed state slightly earlier.\n //\n // If there's ambiguity due to batching it's resolved in preference of:\n // 1) \"delayed\", 2) \"initial render\", 3) \"retry\".\n //\n // We want to ensure that a \"busy\" state doesn't get force committed. We want to\n // ensure that new initial loading states can commit as soon as possible.\n\n\n attachPingListener(root, wakeable, rootRenderLanes);\n _workInProgress.flags |= ShouldCapture;\n _workInProgress.lanes = rootRenderLanes;\n return;\n } // This boundary already captured during this render. Continue to the next\n // boundary.\n\n\n _workInProgress = _workInProgress.return;\n } while (_workInProgress !== null); // No boundary was found. Fallthrough to error mode.\n // TODO: Use invariant so the message is stripped in prod?\n\n\n value = new Error((getComponentName(sourceFiber.type) || 'A React component') + ' suspended while rendering, but no fallback UI was specified.\\n' + '\\n' + 'Add a <Suspense fallback=...> component higher in the tree to ' + 'provide a loading indicator or placeholder to display.');\n } // We didn't find a boundary that could handle this type of exception. Start\n // over and traverse parent path again, this time treating the exception\n // as an error.\n\n\n renderDidError();\n value = createCapturedValue(value, sourceFiber);\n var workInProgress = returnFiber;\n\n do {\n switch (workInProgress.tag) {\n case HostRoot:\n {\n var _errorInfo = value;\n workInProgress.flags |= ShouldCapture;\n var lane = pickArbitraryLane(rootRenderLanes);\n workInProgress.lanes = mergeLanes(workInProgress.lanes, lane);\n\n var _update = createRootErrorUpdate(workInProgress, _errorInfo, lane);\n\n enqueueCapturedUpdate(workInProgress, _update);\n return;\n }\n\n case ClassComponent:\n // Capture and retry\n var errorInfo = value;\n var ctor = workInProgress.type;\n var instance = workInProgress.stateNode;\n\n if ((workInProgress.flags & DidCapture) === NoFlags && (typeof ctor.getDerivedStateFromError === 'function' || instance !== null && typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance))) {\n workInProgress.flags |= ShouldCapture;\n\n var _lane = pickArbitraryLane(rootRenderLanes);\n\n workInProgress.lanes = mergeLanes(workInProgress.lanes, _lane); // Schedule the error boundary to re-render using updated state\n\n var _update2 = createClassErrorUpdate(workInProgress, errorInfo, _lane);\n\n enqueueCapturedUpdate(workInProgress, _update2);\n return;\n }\n\n break;\n }\n\n workInProgress = workInProgress.return;\n } while (workInProgress !== null);\n}\n\nvar didWarnAboutUndefinedSnapshotBeforeUpdate = null;\n\n{\n didWarnAboutUndefinedSnapshotBeforeUpdate = new Set();\n}\n\nvar PossiblyWeakSet = typeof WeakSet === 'function' ? WeakSet : Set;\n\nvar callComponentWillUnmountWithTimer = function (current, instance) {\n instance.props = current.memoizedProps;\n instance.state = current.memoizedState;\n\n {\n instance.componentWillUnmount();\n }\n}; // Capture errors so they don't interrupt unmounting.\n\n\nfunction safelyCallComponentWillUnmount(current, instance) {\n {\n invokeGuardedCallback(null, callComponentWillUnmountWithTimer, null, current, instance);\n\n if (hasCaughtError()) {\n var unmountError = clearCaughtError();\n captureCommitPhaseError(current, unmountError);\n }\n }\n}\n\nfunction safelyDetachRef(current) {\n var ref = current.ref;\n\n if (ref !== null) {\n if (typeof ref === 'function') {\n {\n invokeGuardedCallback(null, ref, null, null);\n\n if (hasCaughtError()) {\n var refError = clearCaughtError();\n captureCommitPhaseError(current, refError);\n }\n }\n } else {\n ref.current = null;\n }\n }\n}\n\nfunction safelyCallDestroy(current, destroy) {\n {\n invokeGuardedCallback(null, destroy, null);\n\n if (hasCaughtError()) {\n var error = clearCaughtError();\n captureCommitPhaseError(current, error);\n }\n }\n}\n\nfunction commitBeforeMutationLifeCycles(current, finishedWork) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n return;\n }\n\n case ClassComponent:\n {\n if (finishedWork.flags & Snapshot) {\n if (current !== null) {\n var prevProps = current.memoizedProps;\n var prevState = current.memoizedState;\n var instance = finishedWork.stateNode; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'getSnapshotBeforeUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n var snapshot = instance.getSnapshotBeforeUpdate(finishedWork.elementType === finishedWork.type ? prevProps : resolveDefaultProps(finishedWork.type, prevProps), prevState);\n\n {\n var didWarnSet = didWarnAboutUndefinedSnapshotBeforeUpdate;\n\n if (snapshot === undefined && !didWarnSet.has(finishedWork.type)) {\n didWarnSet.add(finishedWork.type);\n\n error('%s.getSnapshotBeforeUpdate(): A snapshot value (or null) ' + 'must be returned. You have returned undefined.', getComponentName(finishedWork.type));\n }\n }\n\n instance.__reactInternalSnapshotBeforeUpdate = snapshot;\n }\n }\n\n return;\n }\n\n case HostRoot:\n {\n {\n if (finishedWork.flags & Snapshot) {\n var root = finishedWork.stateNode;\n clearContainer(root.containerInfo);\n }\n }\n\n return;\n }\n\n case HostComponent:\n case HostText:\n case HostPortal:\n case IncompleteClassComponent:\n // Nothing to do for these component types\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitHookEffectListUnmount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Unmount\n var destroy = effect.destroy;\n effect.destroy = undefined;\n\n if (destroy !== undefined) {\n destroy();\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitHookEffectListMount(tag, finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n if ((effect.tag & tag) === tag) {\n // Mount\n var create = effect.create;\n effect.destroy = create();\n\n {\n var destroy = effect.destroy;\n\n if (destroy !== undefined && typeof destroy !== 'function') {\n var addendum = void 0;\n\n if (destroy === null) {\n addendum = ' You returned null. If your effect does not require clean ' + 'up, return undefined (or nothing).';\n } else if (typeof destroy.then === 'function') {\n addendum = '\\n\\nIt looks like you wrote useEffect(async () => ...) or returned a Promise. ' + 'Instead, write the async function inside your effect ' + 'and call it immediately:\\n\\n' + 'useEffect(() => {\\n' + ' async function fetchData() {\\n' + ' // You can await here\\n' + ' const response = await MyAPI.getData(someId);\\n' + ' // ...\\n' + ' }\\n' + ' fetchData();\\n' + \"}, [someId]); // Or [] if effect doesn't need props or state\\n\\n\" + 'Learn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching';\n } else {\n addendum = ' You returned: ' + destroy;\n }\n\n error('An effect function must not return anything besides a function, ' + 'which is used for clean-up.%s', addendum);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction schedulePassiveEffects(finishedWork) {\n var updateQueue = finishedWork.updateQueue;\n var lastEffect = updateQueue !== null ? updateQueue.lastEffect : null;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect = effect,\n next = _effect.next,\n tag = _effect.tag;\n\n if ((tag & Passive$1) !== NoFlags$1 && (tag & HasEffect) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(finishedWork, effect);\n enqueuePendingPassiveHookEffectMount(finishedWork, effect);\n }\n\n effect = next;\n } while (effect !== firstEffect);\n }\n}\n\nfunction commitLifeCycles(finishedRoot, current, finishedWork, committedLanes) {\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n case Block:\n {\n // At this point layout effects have already been destroyed (during mutation phase).\n // This is done to prevent sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListMount(Layout | HasEffect, finishedWork);\n }\n\n schedulePassiveEffects(finishedWork);\n return;\n }\n\n case ClassComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (finishedWork.flags & Update) {\n if (current === null) {\n // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidMount. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidMount();\n }\n } else {\n var prevProps = finishedWork.elementType === finishedWork.type ? current.memoizedProps : resolveDefaultProps(finishedWork.type, current.memoizedProps);\n var prevState = current.memoizedState; // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'componentDidUpdate. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n }\n\n {\n instance.componentDidUpdate(prevProps, prevState, instance.__reactInternalSnapshotBeforeUpdate);\n }\n }\n } // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n\n\n var updateQueue = finishedWork.updateQueue;\n\n if (updateQueue !== null) {\n {\n if (finishedWork.type === finishedWork.elementType && !didWarnAboutReassigningProps) {\n if (instance.props !== finishedWork.memoizedProps) {\n error('Expected %s props to match memoized props before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.props`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n\n if (instance.state !== finishedWork.memoizedState) {\n error('Expected %s state to match memoized state before ' + 'processing the update queue. ' + 'This might either be because of a bug in React, or because ' + 'a component reassigns its own `this.state`. ' + 'Please file an issue.', getComponentName(finishedWork.type) || 'instance');\n }\n }\n } // We could update instance props and state here,\n // but instead we rely on them being set during last render.\n // TODO: revisit this when we implement resuming.\n\n\n commitUpdateQueue(finishedWork, updateQueue, instance);\n }\n\n return;\n }\n\n case HostRoot:\n {\n // TODO: I think this is now always non-null by the time it reaches the\n // commit phase. Consider removing the type check.\n var _updateQueue = finishedWork.updateQueue;\n\n if (_updateQueue !== null) {\n var _instance = null;\n\n if (finishedWork.child !== null) {\n switch (finishedWork.child.tag) {\n case HostComponent:\n _instance = getPublicInstance(finishedWork.child.stateNode);\n break;\n\n case ClassComponent:\n _instance = finishedWork.child.stateNode;\n break;\n }\n }\n\n commitUpdateQueue(finishedWork, _updateQueue, _instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n var _instance2 = finishedWork.stateNode; // Renderers may schedule work to be done after host components are mounted\n // (eg DOM renderer may schedule auto-focus for inputs and form controls).\n // These effects should only be committed when components are first mounted,\n // aka when there is no current/alternate.\n\n if (current === null && finishedWork.flags & Update) {\n var type = finishedWork.type;\n var props = finishedWork.memoizedProps;\n commitMount(_instance2, type, props);\n }\n\n return;\n }\n\n case HostText:\n {\n // We have no life-cycles associated with text.\n return;\n }\n\n case HostPortal:\n {\n // We have no life-cycles associated with portals.\n return;\n }\n\n case Profiler:\n {\n {\n var _finishedWork$memoize2 = finishedWork.memoizedProps,\n onCommit = _finishedWork$memoize2.onCommit,\n onRender = _finishedWork$memoize2.onRender;\n var effectDuration = finishedWork.stateNode.effectDuration;\n var commitTime = getCommitTime();\n\n if (typeof onRender === 'function') {\n {\n onRender(finishedWork.memoizedProps.id, current === null ? 'mount' : 'update', finishedWork.actualDuration, finishedWork.treeBaseDuration, finishedWork.actualStartTime, commitTime, finishedRoot.memoizedInteractions);\n }\n }\n }\n\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseHydrationCallbacks(finishedRoot, finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n case IncompleteClassComponent:\n case FundamentalComponent:\n case ScopeComponent:\n case OffscreenComponent:\n case LegacyHiddenComponent:\n return;\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction hideOrUnhideAllChildren(finishedWork, isHidden) {\n {\n // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = finishedWork;\n\n while (true) {\n if (node.tag === HostComponent) {\n var instance = node.stateNode;\n\n if (isHidden) {\n hideInstance(instance);\n } else {\n unhideInstance(node.stateNode, node.memoizedProps);\n }\n } else if (node.tag === HostText) {\n var _instance3 = node.stateNode;\n\n if (isHidden) {\n hideTextInstance(_instance3);\n } else {\n unhideTextInstance(_instance3, node.memoizedProps);\n }\n } else if ((node.tag === OffscreenComponent || node.tag === LegacyHiddenComponent) && node.memoizedState !== null && node !== finishedWork) ; else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === finishedWork) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === finishedWork) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n}\n\nfunction commitAttachRef(finishedWork) {\n var ref = finishedWork.ref;\n\n if (ref !== null) {\n var instance = finishedWork.stateNode;\n var instanceToUse;\n\n switch (finishedWork.tag) {\n case HostComponent:\n instanceToUse = getPublicInstance(instance);\n break;\n\n default:\n instanceToUse = instance;\n } // Moved outside to ensure DCE works with this flag\n\n if (typeof ref === 'function') {\n ref(instanceToUse);\n } else {\n {\n if (!ref.hasOwnProperty('current')) {\n error('Unexpected ref object provided for %s. ' + 'Use either a ref-setter function or React.createRef().', getComponentName(finishedWork.type));\n }\n }\n\n ref.current = instanceToUse;\n }\n }\n}\n\nfunction commitDetachRef(current) {\n var currentRef = current.ref;\n\n if (currentRef !== null) {\n if (typeof currentRef === 'function') {\n currentRef(null);\n } else {\n currentRef.current = null;\n }\n }\n} // User-originating errors (lifecycles and refs) should not interrupt\n// deletion, so don't let them throw. Host-originating errors should\n// interrupt deletion, so it's okay\n\n\nfunction commitUnmount(finishedRoot, current, renderPriorityLevel) {\n onCommitUnmount(current);\n\n switch (current.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n var updateQueue = current.updateQueue;\n\n if (updateQueue !== null) {\n var lastEffect = updateQueue.lastEffect;\n\n if (lastEffect !== null) {\n var firstEffect = lastEffect.next;\n var effect = firstEffect;\n\n do {\n var _effect2 = effect,\n destroy = _effect2.destroy,\n tag = _effect2.tag;\n\n if (destroy !== undefined) {\n if ((tag & Passive$1) !== NoFlags$1) {\n enqueuePendingPassiveHookEffectUnmount(current, effect);\n } else {\n {\n safelyCallDestroy(current, destroy);\n }\n }\n }\n\n effect = effect.next;\n } while (effect !== firstEffect);\n }\n }\n\n return;\n }\n\n case ClassComponent:\n {\n safelyDetachRef(current);\n var instance = current.stateNode;\n\n if (typeof instance.componentWillUnmount === 'function') {\n safelyCallComponentWillUnmount(current, instance);\n }\n\n return;\n }\n\n case HostComponent:\n {\n safelyDetachRef(current);\n return;\n }\n\n case HostPortal:\n {\n // TODO: this is recursive.\n // We are also not using this parent because\n // the portal will get pushed immediately.\n {\n unmountHostComponents(finishedRoot, current);\n }\n\n return;\n }\n\n case FundamentalComponent:\n {\n\n return;\n }\n\n case DehydratedFragment:\n {\n\n return;\n }\n\n case ScopeComponent:\n {\n\n return;\n }\n }\n}\n\nfunction commitNestedUnmounts(finishedRoot, root, renderPriorityLevel) {\n // While we're inside a removed host node we don't want to call\n // removeChild on the inner nodes because they're removed by the top\n // call anyway. We also want to call componentWillUnmount on all\n // composites before this host node is removed from the tree. Therefore\n // we do an inner loop while we're still inside the host node.\n var node = root;\n\n while (true) {\n commitUnmount(finishedRoot, node); // Visit children because they may contain more composite or host nodes.\n // Skip portals because commitUnmount() currently visits them recursively.\n\n if (node.child !== null && ( // If we use mutation we drill down into portals using commitUnmount above.\n // If we don't use mutation we drill down into portals here instead.\n node.tag !== HostPortal)) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === root) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === root) {\n return;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction detachFiberMutation(fiber) {\n // Cut off the return pointers to disconnect it from the tree. Ideally, we\n // should clear the child pointer of the parent alternate to let this\n // get GC:ed but we don't know which for sure which parent is the current\n // one so we'll settle for GC:ing the subtree of this child. This child\n // itself will be GC:ed when the parent updates the next time.\n // Note: we cannot null out sibling here, otherwise it can cause issues\n // with findDOMNode and how it requires the sibling field to carry out\n // traversal in a later effect. See PR #16820. We now clear the sibling\n // field after effects, see: detachFiberAfterEffects.\n //\n // Don't disconnect stateNode now; it will be detached in detachFiberAfterEffects.\n // It may be required if the current component is an error boundary,\n // and one of its descendants throws while unmounting a passive effect.\n fiber.alternate = null;\n fiber.child = null;\n fiber.dependencies = null;\n fiber.firstEffect = null;\n fiber.lastEffect = null;\n fiber.memoizedProps = null;\n fiber.memoizedState = null;\n fiber.pendingProps = null;\n fiber.return = null;\n fiber.updateQueue = null;\n\n {\n fiber._debugOwner = null;\n }\n}\n\nfunction getHostParentFiber(fiber) {\n var parent = fiber.return;\n\n while (parent !== null) {\n if (isHostParent(parent)) {\n return parent;\n }\n\n parent = parent.return;\n }\n\n {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction isHostParent(fiber) {\n return fiber.tag === HostComponent || fiber.tag === HostRoot || fiber.tag === HostPortal;\n}\n\nfunction getHostSibling(fiber) {\n // We're going to search forward into the tree until we find a sibling host\n // node. Unfortunately, if multiple insertions are done in a row we have to\n // search past them. This leads to exponential search for the next sibling.\n // TODO: Find a more efficient way to do this.\n var node = fiber;\n\n siblings: while (true) {\n // If we didn't find anything, let's try the next sibling.\n while (node.sibling === null) {\n if (node.return === null || isHostParent(node.return)) {\n // If we pop out of the root or hit the parent the fiber we are the\n // last sibling.\n return null;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n\n while (node.tag !== HostComponent && node.tag !== HostText && node.tag !== DehydratedFragment) {\n // If it is not host node and, we might have a host node inside it.\n // Try to search down until we find one.\n if (node.flags & Placement) {\n // If we don't have a child, try the siblings instead.\n continue siblings;\n } // If we don't have a child, try the siblings instead.\n // We also skip portals because they are not part of this host tree.\n\n\n if (node.child === null || node.tag === HostPortal) {\n continue siblings;\n } else {\n node.child.return = node;\n node = node.child;\n }\n } // Check if this host node is stable or about to be placed.\n\n\n if (!(node.flags & Placement)) {\n // Found it!\n return node.stateNode;\n }\n }\n}\n\nfunction commitPlacement(finishedWork) {\n\n\n var parentFiber = getHostParentFiber(finishedWork); // Note: these two variables *must* always be updated together.\n\n var parent;\n var isContainer;\n var parentStateNode = parentFiber.stateNode;\n\n switch (parentFiber.tag) {\n case HostComponent:\n parent = parentStateNode;\n isContainer = false;\n break;\n\n case HostRoot:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case HostPortal:\n parent = parentStateNode.containerInfo;\n isContainer = true;\n break;\n\n case FundamentalComponent:\n\n // eslint-disable-next-line-no-fallthrough\n\n default:\n {\n {\n throw Error( \"Invalid host parent fiber. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n }\n\n if (parentFiber.flags & ContentReset) {\n // Reset the text content of the parent before doing any insertions\n resetTextContent(parent); // Clear ContentReset from the effect tag\n\n parentFiber.flags &= ~ContentReset;\n }\n\n var before = getHostSibling(finishedWork); // We only have the top Fiber that was inserted but we need to recurse down its\n // children to find all the terminal nodes.\n\n if (isContainer) {\n insertOrAppendPlacementNodeIntoContainer(finishedWork, before, parent);\n } else {\n insertOrAppendPlacementNode(finishedWork, before, parent);\n }\n}\n\nfunction insertOrAppendPlacementNodeIntoContainer(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertInContainerBefore(parent, stateNode, before);\n } else {\n appendChildToContainer(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNodeIntoContainer(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNodeIntoContainer(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction insertOrAppendPlacementNode(node, before, parent) {\n var tag = node.tag;\n var isHost = tag === HostComponent || tag === HostText;\n\n if (isHost || enableFundamentalAPI ) {\n var stateNode = isHost ? node.stateNode : node.stateNode.instance;\n\n if (before) {\n insertBefore(parent, stateNode, before);\n } else {\n appendChild(parent, stateNode);\n }\n } else if (tag === HostPortal) ; else {\n var child = node.child;\n\n if (child !== null) {\n insertOrAppendPlacementNode(child, before, parent);\n var sibling = child.sibling;\n\n while (sibling !== null) {\n insertOrAppendPlacementNode(sibling, before, parent);\n sibling = sibling.sibling;\n }\n }\n }\n}\n\nfunction unmountHostComponents(finishedRoot, current, renderPriorityLevel) {\n // We only have the top Fiber that was deleted but we need to recurse down its\n // children to find all the terminal nodes.\n var node = current; // Each iteration, currentParent is populated with node's host parent if not\n // currentParentIsValid.\n\n var currentParentIsValid = false; // Note: these two variables *must* always be updated together.\n\n var currentParent;\n var currentParentIsContainer;\n\n while (true) {\n if (!currentParentIsValid) {\n var parent = node.return;\n\n findParent: while (true) {\n if (!(parent !== null)) {\n {\n throw Error( \"Expected to find a host parent. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var parentStateNode = parent.stateNode;\n\n switch (parent.tag) {\n case HostComponent:\n currentParent = parentStateNode;\n currentParentIsContainer = false;\n break findParent;\n\n case HostRoot:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n case HostPortal:\n currentParent = parentStateNode.containerInfo;\n currentParentIsContainer = true;\n break findParent;\n\n }\n\n parent = parent.return;\n }\n\n currentParentIsValid = true;\n }\n\n if (node.tag === HostComponent || node.tag === HostText) {\n commitNestedUnmounts(finishedRoot, node); // After all the children have unmounted, it is now safe to remove the\n // node from the tree.\n\n if (currentParentIsContainer) {\n removeChildFromContainer(currentParent, node.stateNode);\n } else {\n removeChild(currentParent, node.stateNode);\n } // Don't visit children because we already visited them.\n\n } else if (node.tag === HostPortal) {\n if (node.child !== null) {\n // When we go into a portal, it becomes the parent to remove from.\n // We will reassign it back when we pop the portal on the way up.\n currentParent = node.stateNode.containerInfo;\n currentParentIsContainer = true; // Visit children because portals might contain host components.\n\n node.child.return = node;\n node = node.child;\n continue;\n }\n } else {\n commitUnmount(finishedRoot, node); // Visit children because we may find more host components below.\n\n if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n }\n\n if (node === current) {\n return;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === current) {\n return;\n }\n\n node = node.return;\n\n if (node.tag === HostPortal) {\n // When we go out of the portal, we need to restore the parent.\n // Since we don't keep a stack of them, we will search for it.\n currentParentIsValid = false;\n }\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n}\n\nfunction commitDeletion(finishedRoot, current, renderPriorityLevel) {\n {\n // Recursively delete all host nodes from the parent.\n // Detach refs and call componentWillUnmount() on the whole subtree.\n unmountHostComponents(finishedRoot, current);\n }\n\n var alternate = current.alternate;\n detachFiberMutation(current);\n\n if (alternate !== null) {\n detachFiberMutation(alternate);\n }\n}\n\nfunction commitWork(current, finishedWork) {\n\n switch (finishedWork.tag) {\n case FunctionComponent:\n case ForwardRef:\n case MemoComponent:\n case SimpleMemoComponent:\n case Block:\n {\n // Layout effects are destroyed during the mutation phase so that all\n // destroy functions for all fibers are called before any create functions.\n // This prevents sibling component effects from interfering with each other,\n // e.g. a destroy function in one component should never override a ref set\n // by a create function in another component during the same commit.\n {\n commitHookEffectListUnmount(Layout | HasEffect, finishedWork);\n }\n\n return;\n }\n\n case ClassComponent:\n {\n return;\n }\n\n case HostComponent:\n {\n var instance = finishedWork.stateNode;\n\n if (instance != null) {\n // Commit the work prepared earlier.\n var newProps = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldProps = current !== null ? current.memoizedProps : newProps;\n var type = finishedWork.type; // TODO: Type the updateQueue to be specific to host components.\n\n var updatePayload = finishedWork.updateQueue;\n finishedWork.updateQueue = null;\n\n if (updatePayload !== null) {\n commitUpdate(instance, updatePayload, type, oldProps, newProps);\n }\n }\n\n return;\n }\n\n case HostText:\n {\n if (!(finishedWork.stateNode !== null)) {\n {\n throw Error( \"This should have a text node initialized. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n\n var textInstance = finishedWork.stateNode;\n var newText = finishedWork.memoizedProps; // For hydration we reuse the update path but we treat the oldProps\n // as the newProps. The updatePayload will contain the real change in\n // this case.\n\n var oldText = current !== null ? current.memoizedProps : newText;\n commitTextUpdate(textInstance, oldText, newText);\n return;\n }\n\n case HostRoot:\n {\n {\n var _root = finishedWork.stateNode;\n\n if (_root.hydrate) {\n // We've just hydrated. No need to hydrate again.\n _root.hydrate = false;\n commitHydratedContainer(_root.containerInfo);\n }\n }\n\n return;\n }\n\n case Profiler:\n {\n return;\n }\n\n case SuspenseComponent:\n {\n commitSuspenseComponent(finishedWork);\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case SuspenseListComponent:\n {\n attachSuspenseRetryListeners(finishedWork);\n return;\n }\n\n case IncompleteClassComponent:\n {\n return;\n }\n\n case FundamentalComponent:\n {\n\n break;\n }\n\n case ScopeComponent:\n {\n\n break;\n }\n\n case OffscreenComponent:\n case LegacyHiddenComponent:\n {\n var newState = finishedWork.memoizedState;\n var isHidden = newState !== null;\n hideOrUnhideAllChildren(finishedWork, isHidden);\n return;\n }\n }\n\n {\n {\n throw Error( \"This unit of work tag should not have side-effects. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n}\n\nfunction commitSuspenseComponent(finishedWork) {\n var newState = finishedWork.memoizedState;\n\n if (newState !== null) {\n markCommitTimeOfFallback();\n\n {\n // Hide the Offscreen component that contains the primary children. TODO:\n // Ideally, this effect would have been scheduled on the Offscreen fiber\n // itself. That's how unhiding works: the Offscreen component schedules an\n // effect on itself. However, in this case, the component didn't complete,\n // so the fiber was never added to the effect list in the normal path. We\n // could have appended it to the effect list in the Suspense component's\n // second pass, but doing it this way is less complicated. This would be\n // simpler if we got rid of the effect list and traversed the tree, like\n // we're planning to do.\n var primaryChildParent = finishedWork.child;\n hideOrUnhideAllChildren(primaryChildParent, true);\n }\n }\n}\n\nfunction commitSuspenseHydrationCallbacks(finishedRoot, finishedWork) {\n\n var newState = finishedWork.memoizedState;\n\n if (newState === null) {\n var current = finishedWork.alternate;\n\n if (current !== null) {\n var prevState = current.memoizedState;\n\n if (prevState !== null) {\n var suspenseInstance = prevState.dehydrated;\n\n if (suspenseInstance !== null) {\n commitHydratedSuspenseInstance(suspenseInstance);\n }\n }\n }\n }\n}\n\nfunction attachSuspenseRetryListeners(finishedWork) {\n // If this boundary just timed out, then it will have a set of wakeables.\n // For each wakeable, attach a listener so that when it resolves, React\n // attempts to re-render the boundary in the primary (pre-timeout) state.\n var wakeables = finishedWork.updateQueue;\n\n if (wakeables !== null) {\n finishedWork.updateQueue = null;\n var retryCache = finishedWork.stateNode;\n\n if (retryCache === null) {\n retryCache = finishedWork.stateNode = new PossiblyWeakSet();\n }\n\n wakeables.forEach(function (wakeable) {\n // Memoize using the boundary fiber to prevent redundant listeners.\n var retry = resolveRetryWakeable.bind(null, finishedWork, wakeable);\n\n if (!retryCache.has(wakeable)) {\n {\n if (wakeable.__reactDoNotTraceInteractions !== true) {\n retry = tracing.unstable_wrap(retry);\n }\n }\n\n retryCache.add(wakeable);\n wakeable.then(retry, retry);\n }\n });\n }\n} // This function detects when a Suspense boundary goes from visible to hidden.\n// It returns false if the boundary is already hidden.\n// TODO: Use an effect tag.\n\n\nfunction isSuspenseBoundaryBeingHidden(current, finishedWork) {\n if (current !== null) {\n var oldState = current.memoizedState;\n\n if (oldState === null || oldState.dehydrated !== null) {\n var newState = finishedWork.memoizedState;\n return newState !== null && newState.dehydrated === null;\n }\n }\n\n return false;\n}\n\nfunction commitResetTextContent(current) {\n\n resetTextContent(current.stateNode);\n}\n\nvar COMPONENT_TYPE = 0;\nvar HAS_PSEUDO_CLASS_TYPE = 1;\nvar ROLE_TYPE = 2;\nvar TEST_NAME_TYPE = 3;\nvar TEXT_TYPE = 4;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor$1 = Symbol.for;\n COMPONENT_TYPE = symbolFor$1('selector.component');\n HAS_PSEUDO_CLASS_TYPE = symbolFor$1('selector.has_pseudo_class');\n ROLE_TYPE = symbolFor$1('selector.role');\n TEST_NAME_TYPE = symbolFor$1('selector.test_id');\n TEXT_TYPE = symbolFor$1('selector.text');\n}\nvar commitHooks = [];\nfunction onCommitRoot$1() {\n {\n commitHooks.forEach(function (commitHook) {\n return commitHook();\n });\n }\n}\n\nvar ceil = Math.ceil;\nvar ReactCurrentDispatcher$2 = ReactSharedInternals.ReactCurrentDispatcher,\n ReactCurrentOwner$2 = ReactSharedInternals.ReactCurrentOwner,\n IsSomeRendererActing = ReactSharedInternals.IsSomeRendererActing;\nvar NoContext =\n/* */\n0;\nvar BatchedContext =\n/* */\n1;\nvar EventContext =\n/* */\n2;\nvar DiscreteEventContext =\n/* */\n4;\nvar LegacyUnbatchedContext =\n/* */\n8;\nvar RenderContext =\n/* */\n16;\nvar CommitContext =\n/* */\n32;\nvar RetryAfterError =\n/* */\n64;\nvar RootIncomplete = 0;\nvar RootFatalErrored = 1;\nvar RootErrored = 2;\nvar RootSuspended = 3;\nvar RootSuspendedWithDelay = 4;\nvar RootCompleted = 5; // Describes where we are in the React execution stack\n\nvar executionContext = NoContext; // The root we're working on\n\nvar workInProgressRoot = null; // The fiber we're working on\n\nvar workInProgress = null; // The lanes we're rendering\n\nvar workInProgressRootRenderLanes = NoLanes; // Stack that allows components to change the render lanes for its subtree\n// This is a superset of the lanes we started working on at the root. The only\n// case where it's different from `workInProgressRootRenderLanes` is when we\n// enter a subtree that is hidden and needs to be unhidden: Suspense and\n// Offscreen component.\n//\n// Most things in the work loop should deal with workInProgressRootRenderLanes.\n// Most things in begin/complete phases should deal with subtreeRenderLanes.\n\nvar subtreeRenderLanes = NoLanes;\nvar subtreeRenderLanesCursor = createCursor(NoLanes); // Whether to root completed, errored, suspended, etc.\n\nvar workInProgressRootExitStatus = RootIncomplete; // A fatal error, if one is thrown\n\nvar workInProgressRootFatalError = null; // \"Included\" lanes refer to lanes that were worked on during this render. It's\n// slightly different than `renderLanes` because `renderLanes` can change as you\n// enter and exit an Offscreen tree. This value is the combination of all render\n// lanes for the entire render phase.\n\nvar workInProgressRootIncludedLanes = NoLanes; // The work left over by components that were visited during this render. Only\n// includes unprocessed updates, not work in bailed out children.\n\nvar workInProgressRootSkippedLanes = NoLanes; // Lanes that were updated (in an interleaved event) during this render.\n\nvar workInProgressRootUpdatedLanes = NoLanes; // Lanes that were pinged (in an interleaved event) during this render.\n\nvar workInProgressRootPingedLanes = NoLanes;\nvar mostRecentlyUpdatedRoot = null; // The most recent time we committed a fallback. This lets us ensure a train\n// model where we don't commit new loading states in too quick succession.\n\nvar globalMostRecentFallbackTime = 0;\nvar FALLBACK_THROTTLE_MS = 500; // The absolute time for when we should start giving up on rendering\n// more and prefer CPU suspense heuristics instead.\n\nvar workInProgressRootRenderTargetTime = Infinity; // How long a render is supposed to take before we start following CPU\n// suspense heuristics and opt out of rendering more content.\n\nvar RENDER_TIMEOUT_MS = 500;\n\nfunction resetRenderTimer() {\n workInProgressRootRenderTargetTime = now() + RENDER_TIMEOUT_MS;\n}\n\nfunction getRenderTargetTime() {\n return workInProgressRootRenderTargetTime;\n}\nvar nextEffect = null;\nvar hasUncaughtError = false;\nvar firstUncaughtError = null;\nvar legacyErrorBoundariesThatAlreadyFailed = null;\nvar rootDoesHavePassiveEffects = false;\nvar rootWithPendingPassiveEffects = null;\nvar pendingPassiveEffectsRenderPriority = NoPriority$1;\nvar pendingPassiveEffectsLanes = NoLanes;\nvar pendingPassiveHookEffectsMount = [];\nvar pendingPassiveHookEffectsUnmount = [];\nvar rootsWithPendingDiscreteUpdates = null; // Use these to prevent an infinite loop of nested updates\n\nvar NESTED_UPDATE_LIMIT = 50;\nvar nestedUpdateCount = 0;\nvar rootWithNestedUpdates = null;\nvar NESTED_PASSIVE_UPDATE_LIMIT = 50;\nvar nestedPassiveUpdateCount = 0; // Marks the need to reschedule pending interactions at these lanes\n// during the commit phase. This enables them to be traced across components\n// that spawn new work during render. E.g. hidden boundaries, suspended SSR\n// hydration or SuspenseList.\n// TODO: Can use a bitmask instead of an array\n\nvar spawnedWorkDuringRender = null; // If two updates are scheduled within the same event, we should treat their\n// event times as simultaneous, even if the actual clock time has advanced\n// between the first and second call.\n\nvar currentEventTime = NoTimestamp;\nvar currentEventWipLanes = NoLanes;\nvar currentEventPendingLanes = NoLanes; // Dev only flag that tracks if passive effects are currently being flushed.\n// We warn about state updates for unmounted components differently in this case.\n\nvar isFlushingPassiveEffects = false;\nvar focusedInstanceHandle = null;\nvar shouldFireAfterActiveInstanceBlur = false;\nfunction getWorkInProgressRoot() {\n return workInProgressRoot;\n}\nfunction requestEventTime() {\n if ((executionContext & (RenderContext | CommitContext)) !== NoContext) {\n // We're inside React, so it's fine to read the actual time.\n return now();\n } // We're not inside React, so we may be in the middle of a browser event.\n\n\n if (currentEventTime !== NoTimestamp) {\n // Use the same start time for all updates until we enter React again.\n return currentEventTime;\n } // This is the first update since React yielded. Compute a new start time.\n\n\n currentEventTime = now();\n return currentEventTime;\n}\nfunction requestUpdateLane(fiber) {\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // The algorithm for assigning an update to a lane should be stable for all\n // updates at the same priority within the same event. To do this, the inputs\n // to the algorithm must be the same. For example, we use the `renderLanes`\n // to avoid choosing a lane that is already in the middle of rendering.\n //\n // However, the \"included\" lanes could be mutated in between updates in the\n // same event, like if you perform an update inside `flushSync`. Or any other\n // code path that might call `prepareFreshStack`.\n //\n // The trick we use is to cache the first of each of these inputs within an\n // event. Then reset the cached values once we can be sure the event is over.\n // Our heuristic for that is whenever we enter a concurrent work loop.\n //\n // We'll do the same for `currentEventPendingLanes` below.\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n var isTransition = requestCurrentTransition() !== NoTransition;\n\n if (isTransition) {\n if (currentEventPendingLanes !== NoLanes) {\n currentEventPendingLanes = mostRecentlyUpdatedRoot !== null ? mostRecentlyUpdatedRoot.pendingLanes : NoLanes;\n }\n\n return findTransitionLane(currentEventWipLanes, currentEventPendingLanes);\n } // TODO: Remove this dependency on the Scheduler priority.\n // To do that, we're replacing it with an update lane priority.\n\n\n var schedulerPriority = getCurrentPriorityLevel(); // The old behavior was using the priority level of the Scheduler.\n // This couples React to the Scheduler internals, so we're replacing it\n // with the currentUpdateLanePriority above. As an example of how this\n // could be problematic, if we're not inside `Scheduler.runWithPriority`,\n // then we'll get the priority of the current running Scheduler task,\n // which is probably not what we want.\n\n var lane;\n\n if ( // TODO: Temporary. We're removing the concept of discrete updates.\n (executionContext & DiscreteEventContext) !== NoContext && schedulerPriority === UserBlockingPriority$2) {\n lane = findUpdateLane(InputDiscreteLanePriority, currentEventWipLanes);\n } else {\n var schedulerLanePriority = schedulerPriorityToLanePriority(schedulerPriority);\n\n lane = findUpdateLane(schedulerLanePriority, currentEventWipLanes);\n }\n\n return lane;\n}\n\nfunction requestRetryLane(fiber) {\n // This is a fork of `requestUpdateLane` designed specifically for Suspense\n // \"retries\" — a special update that attempts to flip a Suspense boundary\n // from its placeholder state to its primary/resolved state.\n // Special cases\n var mode = fiber.mode;\n\n if ((mode & BlockingMode) === NoMode) {\n return SyncLane;\n } else if ((mode & ConcurrentMode) === NoMode) {\n return getCurrentPriorityLevel() === ImmediatePriority$1 ? SyncLane : SyncBatchedLane;\n } // See `requestUpdateLane` for explanation of `currentEventWipLanes`\n\n\n if (currentEventWipLanes === NoLanes) {\n currentEventWipLanes = workInProgressRootIncludedLanes;\n }\n\n return findRetryLane(currentEventWipLanes);\n}\n\nfunction scheduleUpdateOnFiber(fiber, lane, eventTime) {\n checkForNestedUpdates();\n warnAboutRenderPhaseUpdatesInDEV(fiber);\n var root = markUpdateLaneFromFiberToRoot(fiber, lane);\n\n if (root === null) {\n warnAboutUpdateOnUnmountedFiberInDEV(fiber);\n return null;\n } // Mark that the root has a pending update.\n\n\n markRootUpdated(root, lane, eventTime);\n\n if (root === workInProgressRoot) {\n // Received an update to a tree that's in the middle of rendering. Mark\n // that there was an interleaved update work on this root. Unless the\n // `deferRenderPhaseUpdateToNextBatch` flag is off and this is a render\n // phase update. In that case, we don't treat render phase updates as if\n // they were interleaved, for backwards compat reasons.\n {\n workInProgressRootUpdatedLanes = mergeLanes(workInProgressRootUpdatedLanes, lane);\n }\n\n if (workInProgressRootExitStatus === RootSuspendedWithDelay) {\n // The root already suspended with a delay, which means this render\n // definitely won't finish. Since we have a new update, let's mark it as\n // suspended now, right before marking the incoming update. This has the\n // effect of interrupting the current render and switching to the update.\n // TODO: Make sure this doesn't override pings that happen while we've\n // already started rendering.\n markRootSuspended$1(root, workInProgressRootRenderLanes);\n }\n } // TODO: requestUpdateLanePriority also reads the priority. Pass the\n // priority as an argument to that function and this one.\n\n\n var priorityLevel = getCurrentPriorityLevel();\n\n if (lane === SyncLane) {\n if ( // Check if we're inside unbatchedUpdates\n (executionContext & LegacyUnbatchedContext) !== NoContext && // Check if we're not already rendering\n (executionContext & (RenderContext | CommitContext)) === NoContext) {\n // Register pending interactions on the root to avoid losing traced interaction data.\n schedulePendingInteractions(root, lane); // This is a legacy edge case. The initial mount of a ReactDOM.render-ed\n // root inside of batchedUpdates should be synchronous, but layout updates\n // should be deferred until the end of the batch.\n\n performSyncWorkOnRoot(root);\n } else {\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n\n if (executionContext === NoContext) {\n // Flush the synchronous work now, unless we're already working or inside\n // a batch. This is intentionally inside scheduleUpdateOnFiber instead of\n // scheduleCallbackForFiber to preserve the ability to schedule a callback\n // without immediately flushing it. We only do this for user-initiated\n // updates, to preserve historical behavior of legacy mode.\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n } else {\n // Schedule a discrete update but only if it's not Sync.\n if ((executionContext & DiscreteEventContext) !== NoContext && ( // Only updates at user-blocking priority or greater are considered\n // discrete, even inside a discrete event.\n priorityLevel === UserBlockingPriority$2 || priorityLevel === ImmediatePriority$1)) {\n // This is the result of a discrete event. Track the lowest priority\n // discrete update per root so we can flush them early, if needed.\n if (rootsWithPendingDiscreteUpdates === null) {\n rootsWithPendingDiscreteUpdates = new Set([root]);\n } else {\n rootsWithPendingDiscreteUpdates.add(root);\n }\n } // Schedule other updates after in case the callback is sync.\n\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, lane);\n } // We use this when assigning a lane for a transition inside\n // `requestUpdateLane`. We assume it's the same as the root being updated,\n // since in the common case of a single root app it probably is. If it's not\n // the same root, then it's not a huge deal, we just might batch more stuff\n // together more than necessary.\n\n\n mostRecentlyUpdatedRoot = root;\n} // This is split into a separate function so we can mark a fiber with pending\n// work without treating it as a typical update that originates from an event;\n// e.g. retrying a Suspense boundary isn't an update, but it does schedule work\n// on a fiber.\n\nfunction markUpdateLaneFromFiberToRoot(sourceFiber, lane) {\n // Update the source fiber's lanes\n sourceFiber.lanes = mergeLanes(sourceFiber.lanes, lane);\n var alternate = sourceFiber.alternate;\n\n if (alternate !== null) {\n alternate.lanes = mergeLanes(alternate.lanes, lane);\n }\n\n {\n if (alternate === null && (sourceFiber.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n } // Walk the parent path to the root and update the child expiration time.\n\n\n var node = sourceFiber;\n var parent = sourceFiber.return;\n\n while (parent !== null) {\n parent.childLanes = mergeLanes(parent.childLanes, lane);\n alternate = parent.alternate;\n\n if (alternate !== null) {\n alternate.childLanes = mergeLanes(alternate.childLanes, lane);\n } else {\n {\n if ((parent.flags & (Placement | Hydrating)) !== NoFlags) {\n warnAboutUpdateOnNotYetMountedFiberInDEV(sourceFiber);\n }\n }\n }\n\n node = parent;\n parent = parent.return;\n }\n\n if (node.tag === HostRoot) {\n var root = node.stateNode;\n return root;\n } else {\n return null;\n }\n} // Use this function to schedule a task for a root. There's only one task per\n// root; if a task was already scheduled, we'll check to make sure the priority\n// of the existing task is the same as the priority of the next level that the\n// root has work on. This function is called on every update, and right before\n// exiting a task.\n\n\nfunction ensureRootIsScheduled(root, currentTime) {\n var existingCallbackNode = root.callbackNode; // Check if any lanes are being starved by other work. If so, mark them as\n // expired so we know to work on those next.\n\n markStarvedLanesAsExpired(root, currentTime); // Determine the next lanes to work on, and their priority.\n\n var nextLanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes); // This returns the priority level computed during the `getNextLanes` call.\n\n var newCallbackPriority = returnNextLanesPriority();\n\n if (nextLanes === NoLanes) {\n // Special case: There's nothing to work on.\n if (existingCallbackNode !== null) {\n cancelCallback(existingCallbackNode);\n root.callbackNode = null;\n root.callbackPriority = NoLanePriority;\n }\n\n return;\n } // Check if there's an existing task. We may be able to reuse it.\n\n\n if (existingCallbackNode !== null) {\n var existingCallbackPriority = root.callbackPriority;\n\n if (existingCallbackPriority === newCallbackPriority) {\n // The priority hasn't changed. We can reuse the existing task. Exit.\n return;\n } // The priority changed. Cancel the existing callback. We'll schedule a new\n // one below.\n\n\n cancelCallback(existingCallbackNode);\n } // Schedule a new callback.\n\n\n var newCallbackNode;\n\n if (newCallbackPriority === SyncLanePriority) {\n // Special case: Sync React callbacks are scheduled on a special\n // internal queue\n newCallbackNode = scheduleSyncCallback(performSyncWorkOnRoot.bind(null, root));\n } else if (newCallbackPriority === SyncBatchedLanePriority) {\n newCallbackNode = scheduleCallback(ImmediatePriority$1, performSyncWorkOnRoot.bind(null, root));\n } else {\n var schedulerPriorityLevel = lanePriorityToSchedulerPriority(newCallbackPriority);\n newCallbackNode = scheduleCallback(schedulerPriorityLevel, performConcurrentWorkOnRoot.bind(null, root));\n }\n\n root.callbackPriority = newCallbackPriority;\n root.callbackNode = newCallbackNode;\n} // This is the entry point for every concurrent task, i.e. anything that\n// goes through Scheduler.\n\n\nfunction performConcurrentWorkOnRoot(root) {\n // Since we know we're in a React event, we can clear the current\n // event time. The next update will compute a new event time.\n currentEventTime = NoTimestamp;\n currentEventWipLanes = NoLanes;\n currentEventPendingLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n } // Flush any pending passive effects before deciding which lanes to work on,\n // in case they schedule additional work.\n\n\n var originalCallbackNode = root.callbackNode;\n var didFlushPassiveEffects = flushPassiveEffects();\n\n if (didFlushPassiveEffects) {\n // Something in the passive effect phase may have canceled the current task.\n // Check if the task node for this root was changed.\n if (root.callbackNode !== originalCallbackNode) {\n // The current task was canceled. Exit. We don't need to call\n // `ensureRootIsScheduled` because the check above implies either that\n // there's a new task, or that there's no remaining work on this root.\n return null;\n }\n } // Determine the next expiration time to work on, using the fields stored\n // on the root.\n\n\n var lanes = getNextLanes(root, root === workInProgressRoot ? workInProgressRootRenderLanes : NoLanes);\n\n if (lanes === NoLanes) {\n // Defensive coding. This is never expected to happen.\n return null;\n }\n\n var exitStatus = renderRootConcurrent(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // So we'll throw out the current work and restart.\n prepareFreshStack(root, NoLanes);\n } else if (exitStatus !== RootIncomplete) {\n if (exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. The next step is either to commit it,\n // or, if something suspended, wait to commit it after a timeout.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n finishConcurrentRender(root, exitStatus, lanes);\n }\n\n ensureRootIsScheduled(root, now());\n\n if (root.callbackNode === originalCallbackNode) {\n // The task node scheduled for this root is the same one that's\n // currently executed. Need to return a continuation.\n return performConcurrentWorkOnRoot.bind(null, root);\n }\n\n return null;\n}\n\nfunction finishConcurrentRender(root, exitStatus, lanes) {\n switch (exitStatus) {\n case RootIncomplete:\n case RootFatalErrored:\n {\n {\n {\n throw Error( \"Root did not complete. This is a bug in React.\" );\n }\n }\n }\n // Flow knows about invariant, so it complains if I add a break\n // statement, but eslint doesn't know about invariant, so it complains\n // if I do. eslint-disable-next-line no-fallthrough\n\n case RootErrored:\n {\n // We should have already attempted to retry this tree. If we reached\n // this point, it errored again. Commit it.\n commitRoot(root);\n break;\n }\n\n case RootSuspended:\n {\n markRootSuspended$1(root, lanes); // We have an acceptable loading state. We need to figure out if we\n // should immediately commit it or wait a bit.\n\n if (includesOnlyRetries(lanes) && // do not delay if we're inside an act() scope\n !shouldForceFlushFallbacksInDEV()) {\n // This render only included retries, no updates. Throttle committing\n // retries so that we don't show too many loading states too quickly.\n var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.\n\n if (msUntilTimeout > 10) {\n var nextLanes = getNextLanes(root, NoLanes);\n\n if (nextLanes !== NoLanes) {\n // There's additional work on this root.\n break;\n }\n\n var suspendedLanes = root.suspendedLanes;\n\n if (!isSubsetOfLanes(suspendedLanes, lanes)) {\n // We should prefer to render the fallback of at the last\n // suspended level. Ping the last suspended level to try\n // rendering it again.\n // FIXME: What if the suspended lanes are Idle? Should not restart.\n var eventTime = requestEventTime();\n markRootPinged(root, suspendedLanes);\n break;\n } // The render is suspended, it hasn't timed out, and there's no\n // lower priority work to do. Instead of committing the fallback\n // immediately, wait for more data to arrive.\n\n\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), msUntilTimeout);\n break;\n }\n } // The work expired. Commit immediately.\n\n\n commitRoot(root);\n break;\n }\n\n case RootSuspendedWithDelay:\n {\n markRootSuspended$1(root, lanes);\n\n if (includesOnlyTransitions(lanes)) {\n // This is a transition, so we should exit without committing a\n // placeholder and without scheduling a timeout. Delay indefinitely\n // until we receive more data.\n break;\n }\n\n if (!shouldForceFlushFallbacksInDEV()) {\n // This is not a transition, but we did trigger an avoided state.\n // Schedule a placeholder to display after a short delay, using the Just\n // Noticeable Difference.\n // TODO: Is the JND optimization worth the added complexity? If this is\n // the only reason we track the event time, then probably not.\n // Consider removing.\n var mostRecentEventTime = getMostRecentEventTime(root, lanes);\n var eventTimeMs = mostRecentEventTime;\n var timeElapsedMs = now() - eventTimeMs;\n\n var _msUntilTimeout = jnd(timeElapsedMs) - timeElapsedMs; // Don't bother with a very short suspense time.\n\n\n if (_msUntilTimeout > 10) {\n // Instead of committing the fallback immediately, wait for more data\n // to arrive.\n root.timeoutHandle = scheduleTimeout(commitRoot.bind(null, root), _msUntilTimeout);\n break;\n }\n } // Commit the placeholder.\n\n\n commitRoot(root);\n break;\n }\n\n case RootCompleted:\n {\n // The work completed. Ready to commit.\n commitRoot(root);\n break;\n }\n\n default:\n {\n {\n {\n throw Error( \"Unknown root exit status.\" );\n }\n }\n }\n }\n}\n\nfunction markRootSuspended$1(root, suspendedLanes) {\n // When suspending, we should always exclude lanes that were pinged or (more\n // rarely, since we try to avoid it) updated during the render phase.\n // TODO: Lol maybe there's a better way to factor this besides this\n // obnoxiously named function :)\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootPingedLanes);\n suspendedLanes = removeLanes(suspendedLanes, workInProgressRootUpdatedLanes);\n markRootSuspended(root, suspendedLanes);\n} // This is the entry point for synchronous tasks that don't go\n// through Scheduler\n\n\nfunction performSyncWorkOnRoot(root) {\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n flushPassiveEffects();\n var lanes;\n var exitStatus;\n\n if (root === workInProgressRoot && includesSomeLane(root.expiredLanes, workInProgressRootRenderLanes)) {\n // There's a partial tree, and at least one of its lanes has expired. Finish\n // rendering it before rendering the rest of the expired work.\n lanes = workInProgressRootRenderLanes;\n exitStatus = renderRootSync(root, lanes);\n\n if (includesSomeLane(workInProgressRootIncludedLanes, workInProgressRootUpdatedLanes)) {\n // The render included lanes that were updated during the render phase.\n // For example, when unhiding a hidden tree, we include all the lanes\n // that were previously skipped when the tree was hidden. That set of\n // lanes is a superset of the lanes we started rendering with.\n //\n // Note that this only happens when part of the tree is rendered\n // concurrently. If the whole tree is rendered synchronously, then there\n // are no interleaved events.\n lanes = getNextLanes(root, lanes);\n exitStatus = renderRootSync(root, lanes);\n }\n } else {\n lanes = getNextLanes(root, NoLanes);\n exitStatus = renderRootSync(root, lanes);\n }\n\n if (root.tag !== LegacyRoot && exitStatus === RootErrored) {\n executionContext |= RetryAfterError; // If an error occurred during hydration,\n // discard server response and fall back to client side render.\n\n if (root.hydrate) {\n root.hydrate = false;\n clearContainer(root.containerInfo);\n } // If something threw an error, try rendering one more time. We'll render\n // synchronously to block concurrent data mutations, and we'll includes\n // all pending updates are included. If it still fails after the second\n // attempt, we'll give up and commit the resulting tree.\n\n\n lanes = getLanesToRetrySynchronouslyOnError(root);\n\n if (lanes !== NoLanes) {\n exitStatus = renderRootSync(root, lanes);\n }\n }\n\n if (exitStatus === RootFatalErrored) {\n var fatalError = workInProgressRootFatalError;\n prepareFreshStack(root, NoLanes);\n markRootSuspended$1(root, lanes);\n ensureRootIsScheduled(root, now());\n throw fatalError;\n } // We now have a consistent tree. Because this is a sync render, we\n // will commit it even if something suspended.\n\n\n var finishedWork = root.current.alternate;\n root.finishedWork = finishedWork;\n root.finishedLanes = lanes;\n commitRoot(root); // Before exiting, make sure there's a callback scheduled for the next\n // pending level.\n\n ensureRootIsScheduled(root, now());\n return null;\n}\nfunction flushDiscreteUpdates() {\n // TODO: Should be able to flush inside batchedUpdates, but not inside `act`.\n // However, `act` uses `batchedUpdates`, so there's no way to distinguish\n // those two cases. Need to fix this before exposing flushDiscreteUpdates\n // as a public API.\n if ((executionContext & (BatchedContext | RenderContext | CommitContext)) !== NoContext) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n error('unstable_flushDiscreteUpdates: Cannot flush updates when React is ' + 'already rendering.');\n }\n } // We're already rendering, so we can't synchronously flush pending work.\n // This is probably a nested event dispatch triggered by a lifecycle/effect,\n // like `el.focus()`. Exit.\n\n\n return;\n }\n\n flushPendingDiscreteUpdates(); // If the discrete updates scheduled passive effects, flush them now so that\n // they fire before the next serial event.\n\n flushPassiveEffects();\n}\n\nfunction flushPendingDiscreteUpdates() {\n if (rootsWithPendingDiscreteUpdates !== null) {\n // For each root with pending discrete updates, schedule a callback to\n // immediately flush them.\n var roots = rootsWithPendingDiscreteUpdates;\n rootsWithPendingDiscreteUpdates = null;\n roots.forEach(function (root) {\n markDiscreteUpdatesExpired(root);\n ensureRootIsScheduled(root, now());\n });\n } // Now flush the immediate queue.\n\n\n flushSyncCallbackQueue();\n}\n\nfunction batchedUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= BatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction batchedEventUpdates$1(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext |= EventContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction discreteUpdates$1(fn, a, b, c, d) {\n var prevExecutionContext = executionContext;\n executionContext |= DiscreteEventContext;\n\n {\n try {\n return runWithPriority$1(UserBlockingPriority$2, fn.bind(null, a, b, c, d));\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n }\n}\nfunction unbatchedUpdates(fn, a) {\n var prevExecutionContext = executionContext;\n executionContext &= ~BatchedContext;\n executionContext |= LegacyUnbatchedContext;\n\n try {\n return fn(a);\n } finally {\n executionContext = prevExecutionContext;\n\n if (executionContext === NoContext) {\n // Flush the immediate callbacks that were scheduled during this batch\n resetRenderTimer();\n flushSyncCallbackQueue();\n }\n }\n}\nfunction flushSync(fn, a) {\n var prevExecutionContext = executionContext;\n\n if ((prevExecutionContext & (RenderContext | CommitContext)) !== NoContext) {\n {\n error('flushSync was called from inside a lifecycle method. React cannot ' + 'flush when React is already rendering. Consider moving this call to ' + 'a scheduler task or micro task.');\n }\n\n return fn(a);\n }\n\n executionContext |= BatchedContext;\n\n {\n try {\n if (fn) {\n return runWithPriority$1(ImmediatePriority$1, fn.bind(null, a));\n } else {\n return undefined;\n }\n } finally {\n executionContext = prevExecutionContext; // Flush the immediate callbacks that were scheduled during this batch.\n // Note that this will happen even if batchedUpdates is higher up\n // the stack.\n\n flushSyncCallbackQueue();\n }\n }\n}\nfunction pushRenderLanes(fiber, lanes) {\n push(subtreeRenderLanesCursor, subtreeRenderLanes, fiber);\n subtreeRenderLanes = mergeLanes(subtreeRenderLanes, lanes);\n workInProgressRootIncludedLanes = mergeLanes(workInProgressRootIncludedLanes, lanes);\n}\nfunction popRenderLanes(fiber) {\n subtreeRenderLanes = subtreeRenderLanesCursor.current;\n pop(subtreeRenderLanesCursor, fiber);\n}\n\nfunction prepareFreshStack(root, lanes) {\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n var timeoutHandle = root.timeoutHandle;\n\n if (timeoutHandle !== noTimeout) {\n // The root previous suspended and scheduled a timeout to commit a fallback\n // state. Now that we have additional work, cancel the timeout.\n root.timeoutHandle = noTimeout; // $FlowFixMe Complains noTimeout is not a TimeoutID, despite the check above\n\n cancelTimeout(timeoutHandle);\n }\n\n if (workInProgress !== null) {\n var interruptedWork = workInProgress.return;\n\n while (interruptedWork !== null) {\n unwindInterruptedWork(interruptedWork);\n interruptedWork = interruptedWork.return;\n }\n }\n\n workInProgressRoot = root;\n workInProgress = createWorkInProgress(root.current, null);\n workInProgressRootRenderLanes = subtreeRenderLanes = workInProgressRootIncludedLanes = lanes;\n workInProgressRootExitStatus = RootIncomplete;\n workInProgressRootFatalError = null;\n workInProgressRootSkippedLanes = NoLanes;\n workInProgressRootUpdatedLanes = NoLanes;\n workInProgressRootPingedLanes = NoLanes;\n\n {\n spawnedWorkDuringRender = null;\n }\n\n {\n ReactStrictModeWarnings.discardPendingWarnings();\n }\n}\n\nfunction handleError(root, thrownValue) {\n do {\n var erroredWork = workInProgress;\n\n try {\n // Reset module-level state that was set during the render phase.\n resetContextDependencies();\n resetHooksAfterThrow();\n resetCurrentFiber(); // TODO: I found and added this missing line while investigating a\n // separate issue. Write a regression test using string refs.\n\n ReactCurrentOwner$2.current = null;\n\n if (erroredWork === null || erroredWork.return === null) {\n // Expected to be working on a non-root fiber. This is a fatal error\n // because there's no ancestor that can handle it; the root is\n // supposed to capture all errors that weren't caught by an error\n // boundary.\n workInProgressRootExitStatus = RootFatalErrored;\n workInProgressRootFatalError = thrownValue; // Set `workInProgress` to null. This represents advancing to the next\n // sibling, or the parent if there are no siblings. But since the root\n // has no siblings nor a parent, we set it to null. Usually this is\n // handled by `completeUnitOfWork` or `unwindWork`, but since we're\n // intentionally not calling those, we need set it here.\n // TODO: Consider calling `unwindWork` to pop the contexts.\n\n workInProgress = null;\n return;\n }\n\n if (enableProfilerTimer && erroredWork.mode & ProfileMode) {\n // Record the time spent rendering before an error was thrown. This\n // avoids inaccurate Profiler durations in the case of a\n // suspended render.\n stopProfilerTimerIfRunningAndRecordDelta(erroredWork, true);\n }\n\n throwException(root, erroredWork.return, erroredWork, thrownValue, workInProgressRootRenderLanes);\n completeUnitOfWork(erroredWork);\n } catch (yetAnotherThrownValue) {\n // Something in the return path also threw.\n thrownValue = yetAnotherThrownValue;\n\n if (workInProgress === erroredWork && erroredWork !== null) {\n // If this boundary has already errored, then we had trouble processing\n // the error. Bubble it to the next boundary.\n erroredWork = erroredWork.return;\n workInProgress = erroredWork;\n } else {\n erroredWork = workInProgress;\n }\n\n continue;\n } // Return to the normal work loop.\n\n\n return;\n } while (true);\n}\n\nfunction pushDispatcher() {\n var prevDispatcher = ReactCurrentDispatcher$2.current;\n ReactCurrentDispatcher$2.current = ContextOnlyDispatcher;\n\n if (prevDispatcher === null) {\n // The React isomorphic package does not include a default dispatcher.\n // Instead the first renderer will lazily attach one, in order to give\n // nicer error messages.\n return ContextOnlyDispatcher;\n } else {\n return prevDispatcher;\n }\n}\n\nfunction popDispatcher(prevDispatcher) {\n ReactCurrentDispatcher$2.current = prevDispatcher;\n}\n\nfunction pushInteractions(root) {\n {\n var prevInteractions = tracing.__interactionsRef.current;\n tracing.__interactionsRef.current = root.memoizedInteractions;\n return prevInteractions;\n }\n}\n\nfunction popInteractions(prevInteractions) {\n {\n tracing.__interactionsRef.current = prevInteractions;\n }\n}\n\nfunction markCommitTimeOfFallback() {\n globalMostRecentFallbackTime = now();\n}\nfunction markSkippedUpdateLanes(lane) {\n workInProgressRootSkippedLanes = mergeLanes(lane, workInProgressRootSkippedLanes);\n}\nfunction renderDidSuspend() {\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootSuspended;\n }\n}\nfunction renderDidSuspendDelayIfPossible() {\n if (workInProgressRootExitStatus === RootIncomplete || workInProgressRootExitStatus === RootSuspended) {\n workInProgressRootExitStatus = RootSuspendedWithDelay;\n } // Check if there are updates that we skipped tree that might have unblocked\n // this render.\n\n\n if (workInProgressRoot !== null && (includesNonIdleWork(workInProgressRootSkippedLanes) || includesNonIdleWork(workInProgressRootUpdatedLanes))) {\n // Mark the current render as suspended so that we switch to working on\n // the updates that were skipped. Usually we only suspend at the end of\n // the render phase.\n // TODO: We should probably always mark the root as suspended immediately\n // (inside this function), since by suspending at the end of the render\n // phase introduces a potential mistake where we suspend lanes that were\n // pinged or updated while we were rendering.\n markRootSuspended$1(workInProgressRoot, workInProgressRootRenderLanes);\n }\n}\nfunction renderDidError() {\n if (workInProgressRootExitStatus !== RootCompleted) {\n workInProgressRootExitStatus = RootErrored;\n }\n} // Called during render to determine if anything has suspended.\n// Returns false if we're not sure.\n\nfunction renderHasNotSuspendedYet() {\n // If something errored or completed, we can't really be sure,\n // so those are false.\n return workInProgressRootExitStatus === RootIncomplete;\n}\n\nfunction renderRootSync(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopSync();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n popDispatcher(prevDispatcher);\n\n if (workInProgress !== null) {\n // This is a sync render, so we should have finished the whole tree.\n {\n {\n throw Error( \"Cannot commit an incomplete root. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n }\n }\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes;\n return workInProgressRootExitStatus;\n} // The work loop is an extremely hot path. Tell Closure not to inline it.\n\n/** @noinline */\n\n\nfunction workLoopSync() {\n // Already timed out, so perform work without checking if we need to yield.\n while (workInProgress !== null) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction renderRootConcurrent(root, lanes) {\n var prevExecutionContext = executionContext;\n executionContext |= RenderContext;\n var prevDispatcher = pushDispatcher(); // If the root or lanes have changed, throw out the existing stack\n // and prepare a fresh one. Otherwise we'll continue where we left off.\n\n if (workInProgressRoot !== root || workInProgressRootRenderLanes !== lanes) {\n resetRenderTimer();\n prepareFreshStack(root, lanes);\n startWorkOnPendingInteractions(root, lanes);\n }\n\n var prevInteractions = pushInteractions(root);\n\n do {\n try {\n workLoopConcurrent();\n break;\n } catch (thrownValue) {\n handleError(root, thrownValue);\n }\n } while (true);\n\n resetContextDependencies();\n\n {\n popInteractions(prevInteractions);\n }\n\n popDispatcher(prevDispatcher);\n executionContext = prevExecutionContext;\n\n\n if (workInProgress !== null) {\n\n return RootIncomplete;\n } else {\n\n\n workInProgressRoot = null;\n workInProgressRootRenderLanes = NoLanes; // Return the final exit status.\n\n return workInProgressRootExitStatus;\n }\n}\n/** @noinline */\n\n\nfunction workLoopConcurrent() {\n // Perform work until Scheduler asks us to yield\n while (workInProgress !== null && !shouldYield()) {\n performUnitOfWork(workInProgress);\n }\n}\n\nfunction performUnitOfWork(unitOfWork) {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = unitOfWork.alternate;\n setCurrentFiber(unitOfWork);\n var next;\n\n if ( (unitOfWork.mode & ProfileMode) !== NoMode) {\n startProfilerTimer(unitOfWork);\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n stopProfilerTimerIfRunningAndRecordDelta(unitOfWork, true);\n } else {\n next = beginWork$1(current, unitOfWork, subtreeRenderLanes);\n }\n\n resetCurrentFiber();\n unitOfWork.memoizedProps = unitOfWork.pendingProps;\n\n if (next === null) {\n // If this doesn't spawn new work, complete the current work.\n completeUnitOfWork(unitOfWork);\n } else {\n workInProgress = next;\n }\n\n ReactCurrentOwner$2.current = null;\n}\n\nfunction completeUnitOfWork(unitOfWork) {\n // Attempt to complete the current unit of work, then move to the next\n // sibling. If there are no more siblings, return to the parent fiber.\n var completedWork = unitOfWork;\n\n do {\n // The current, flushed, state of this fiber is the alternate. Ideally\n // nothing should rely on this, but relying on it here means that we don't\n // need an additional field on the work in progress.\n var current = completedWork.alternate;\n var returnFiber = completedWork.return; // Check if the work completed or if something threw.\n\n if ((completedWork.flags & Incomplete) === NoFlags) {\n setCurrentFiber(completedWork);\n var next = void 0;\n\n if ( (completedWork.mode & ProfileMode) === NoMode) {\n next = completeWork(current, completedWork, subtreeRenderLanes);\n } else {\n startProfilerTimer(completedWork);\n next = completeWork(current, completedWork, subtreeRenderLanes); // Update render duration assuming we didn't error.\n\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false);\n }\n\n resetCurrentFiber();\n\n if (next !== null) {\n // Completing this fiber spawned new work. Work on that next.\n workInProgress = next;\n return;\n }\n\n resetChildLanes(completedWork);\n\n if (returnFiber !== null && // Do not append effects to parents if a sibling failed to complete\n (returnFiber.flags & Incomplete) === NoFlags) {\n // Append all the effects of the subtree and this fiber onto the effect\n // list of the parent. The completion order of the children affects the\n // side-effect order.\n if (returnFiber.firstEffect === null) {\n returnFiber.firstEffect = completedWork.firstEffect;\n }\n\n if (completedWork.lastEffect !== null) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork.firstEffect;\n }\n\n returnFiber.lastEffect = completedWork.lastEffect;\n } // If this fiber had side-effects, we append it AFTER the children's\n // side-effects. We can perform certain side-effects earlier if needed,\n // by doing multiple passes over the effect list. We don't want to\n // schedule our own side-effect on our own list because if end up\n // reusing children we'll schedule this effect onto itself since we're\n // at the end.\n\n\n var flags = completedWork.flags; // Skip both NoWork and PerformedWork tags when creating the effect\n // list. PerformedWork effect is read by React DevTools but shouldn't be\n // committed.\n\n if (flags > PerformedWork) {\n if (returnFiber.lastEffect !== null) {\n returnFiber.lastEffect.nextEffect = completedWork;\n } else {\n returnFiber.firstEffect = completedWork;\n }\n\n returnFiber.lastEffect = completedWork;\n }\n }\n } else {\n // This fiber did not complete because something threw. Pop values off\n // the stack without entering the complete phase. If this is a boundary,\n // capture values if possible.\n var _next = unwindWork(completedWork); // Because this fiber did not complete, don't reset its expiration time.\n\n\n if (_next !== null) {\n // If completing this work spawned new work, do that next. We'll come\n // back here again.\n // Since we're restarting, remove anything that is not a host effect\n // from the effect tag.\n _next.flags &= HostEffectMask;\n workInProgress = _next;\n return;\n }\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // Record the render duration for the fiber that errored.\n stopProfilerTimerIfRunningAndRecordDelta(completedWork, false); // Include the time spent working on failed children before continuing.\n\n var actualDuration = completedWork.actualDuration;\n var child = completedWork.child;\n\n while (child !== null) {\n actualDuration += child.actualDuration;\n child = child.sibling;\n }\n\n completedWork.actualDuration = actualDuration;\n }\n\n if (returnFiber !== null) {\n // Mark the parent fiber as incomplete and clear its effect list.\n returnFiber.firstEffect = returnFiber.lastEffect = null;\n returnFiber.flags |= Incomplete;\n }\n }\n\n var siblingFiber = completedWork.sibling;\n\n if (siblingFiber !== null) {\n // If there is more work to do in this returnFiber, do that next.\n workInProgress = siblingFiber;\n return;\n } // Otherwise, return to the parent\n\n\n completedWork = returnFiber; // Update the next thing we're working on in case something throws.\n\n workInProgress = completedWork;\n } while (completedWork !== null); // We've reached the root.\n\n\n if (workInProgressRootExitStatus === RootIncomplete) {\n workInProgressRootExitStatus = RootCompleted;\n }\n}\n\nfunction resetChildLanes(completedWork) {\n if ( // TODO: Move this check out of the hot path by moving `resetChildLanes`\n // to switch statement in `completeWork`.\n (completedWork.tag === LegacyHiddenComponent || completedWork.tag === OffscreenComponent) && completedWork.memoizedState !== null && !includesSomeLane(subtreeRenderLanes, OffscreenLane) && (completedWork.mode & ConcurrentMode) !== NoLanes) {\n // The children of this component are hidden. Don't bubble their\n // expiration times.\n return;\n }\n\n var newChildLanes = NoLanes; // Bubble up the earliest expiration time.\n\n if ( (completedWork.mode & ProfileMode) !== NoMode) {\n // In profiling mode, resetChildExpirationTime is also used to reset\n // profiler durations.\n var actualDuration = completedWork.actualDuration;\n var treeBaseDuration = completedWork.selfBaseDuration; // When a fiber is cloned, its actualDuration is reset to 0. This value will\n // only be updated if work is done on the fiber (i.e. it doesn't bailout).\n // When work is done, it should bubble to the parent's actualDuration. If\n // the fiber has not been cloned though, (meaning no work was done), then\n // this value will reflect the amount of time spent working on a previous\n // render. In that case it should not bubble. We determine whether it was\n // cloned by comparing the child pointer.\n\n var shouldBubbleActualDurations = completedWork.alternate === null || completedWork.child !== completedWork.alternate.child;\n var child = completedWork.child;\n\n while (child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(child.lanes, child.childLanes));\n\n if (shouldBubbleActualDurations) {\n actualDuration += child.actualDuration;\n }\n\n treeBaseDuration += child.treeBaseDuration;\n child = child.sibling;\n }\n\n var isTimedOutSuspense = completedWork.tag === SuspenseComponent && completedWork.memoizedState !== null;\n\n if (isTimedOutSuspense) {\n // Don't count time spent in a timed out Suspense subtree as part of the base duration.\n var primaryChildFragment = completedWork.child;\n\n if (primaryChildFragment !== null) {\n treeBaseDuration -= primaryChildFragment.treeBaseDuration;\n }\n }\n\n completedWork.actualDuration = actualDuration;\n completedWork.treeBaseDuration = treeBaseDuration;\n } else {\n var _child = completedWork.child;\n\n while (_child !== null) {\n newChildLanes = mergeLanes(newChildLanes, mergeLanes(_child.lanes, _child.childLanes));\n _child = _child.sibling;\n }\n }\n\n completedWork.childLanes = newChildLanes;\n}\n\nfunction commitRoot(root) {\n var renderPriorityLevel = getCurrentPriorityLevel();\n runWithPriority$1(ImmediatePriority$1, commitRootImpl.bind(null, root, renderPriorityLevel));\n return null;\n}\n\nfunction commitRootImpl(root, renderPriorityLevel) {\n do {\n // `flushPassiveEffects` will call `flushSyncUpdateQueue` at the end, which\n // means `flushPassiveEffects` will sometimes result in additional\n // passive effects. So we need to keep flushing in a loop until there are\n // no more pending effects.\n // TODO: Might be better if `flushPassiveEffects` did not automatically\n // flush synchronous work at the end, to avoid factoring hazards like this.\n flushPassiveEffects();\n } while (rootWithPendingPassiveEffects !== null);\n\n flushRenderPhaseStrictModeWarningsInDEV();\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Should not already be working.\" );\n }\n }\n\n var finishedWork = root.finishedWork;\n var lanes = root.finishedLanes;\n\n if (finishedWork === null) {\n\n return null;\n }\n\n root.finishedWork = null;\n root.finishedLanes = NoLanes;\n\n if (!(finishedWork !== root.current)) {\n {\n throw Error( \"Cannot commit the same tree as before. This error is likely caused by a bug in React. Please file an issue.\" );\n }\n } // commitRoot never returns a continuation; it always finishes synchronously.\n // So we can clear these now to allow a new callback to be scheduled.\n\n\n root.callbackNode = null; // Update the first and last pending times on this root. The new first\n // pending time is whatever is left on the root fiber.\n\n var remainingLanes = mergeLanes(finishedWork.lanes, finishedWork.childLanes);\n markRootFinished(root, remainingLanes); // Clear already finished discrete updates in case that a later call of\n // `flushDiscreteUpdates` starts a useless render pass which may cancels\n // a scheduled timeout.\n\n if (rootsWithPendingDiscreteUpdates !== null) {\n if (!hasDiscreteLanes(remainingLanes) && rootsWithPendingDiscreteUpdates.has(root)) {\n rootsWithPendingDiscreteUpdates.delete(root);\n }\n }\n\n if (root === workInProgressRoot) {\n // We can reset these now that they are finished.\n workInProgressRoot = null;\n workInProgress = null;\n workInProgressRootRenderLanes = NoLanes;\n } // Get the list of effects.\n\n\n var firstEffect;\n\n if (finishedWork.flags > PerformedWork) {\n // A fiber's effect list consists only of its children, not itself. So if\n // the root has an effect, we need to add it to the end of the list. The\n // resulting list is the set that would belong to the root's parent, if it\n // had one; that is, all the effects in the tree including the root.\n if (finishedWork.lastEffect !== null) {\n finishedWork.lastEffect.nextEffect = finishedWork;\n firstEffect = finishedWork.firstEffect;\n } else {\n firstEffect = finishedWork;\n }\n } else {\n // There is no effect on the root.\n firstEffect = finishedWork.firstEffect;\n }\n\n if (firstEffect !== null) {\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // Reset this to null before calling lifecycles\n\n ReactCurrentOwner$2.current = null; // The commit phase is broken into several sub-phases. We do a separate pass\n // of the effect list for each phase: all mutation effects come before all\n // layout effects, and so on.\n // The first phase a \"before mutation\" phase. We use this phase to read the\n // state of the host tree right before we mutate it. This is where\n // getSnapshotBeforeUpdate is called.\n\n focusedInstanceHandle = prepareForCommit(root.containerInfo);\n shouldFireAfterActiveInstanceBlur = false;\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitBeforeMutationEffects, null);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(nextEffect, error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null); // We no longer need to track the active instance fiber\n\n\n focusedInstanceHandle = null;\n\n {\n // Mark the current commit time to be shared by all Profilers in this\n // batch. This enables them to be grouped later.\n recordCommitTime();\n } // The next phase is the mutation phase, where we mutate the host tree.\n\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitMutationEffects, null, root, renderPriorityLevel);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n resetAfterCommit(root.containerInfo); // The work-in-progress tree is now the current tree. This must come after\n // the mutation phase, so that the previous tree is still current during\n // componentWillUnmount, but before the layout phase, so that the finished\n // work is current during componentDidMount/Update.\n\n root.current = finishedWork; // The next phase is the layout phase, where we call effects that read\n // the host tree after it's been mutated. The idiomatic use case for this is\n // layout, but class component lifecycles also fire here for legacy reasons.\n\n nextEffect = firstEffect;\n\n do {\n {\n invokeGuardedCallback(null, commitLayoutEffects, null, root, lanes);\n\n if (hasCaughtError()) {\n if (!(nextEffect !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error2 = clearCaughtError();\n\n captureCommitPhaseError(nextEffect, _error2);\n nextEffect = nextEffect.nextEffect;\n }\n }\n } while (nextEffect !== null);\n\n nextEffect = null; // Tell Scheduler to yield at the end of the frame, so the browser has an\n // opportunity to paint.\n\n requestPaint();\n\n {\n popInteractions(prevInteractions);\n }\n\n executionContext = prevExecutionContext;\n } else {\n // No effects.\n root.current = finishedWork; // Measure these anyway so the flamegraph explicitly shows that there were\n // no effects.\n // TODO: Maybe there's a better way to report this.\n\n {\n recordCommitTime();\n }\n }\n\n var rootDidHavePassiveEffects = rootDoesHavePassiveEffects;\n\n if (rootDoesHavePassiveEffects) {\n // This commit has passive effects. Stash a reference to them. But don't\n // schedule a callback until after flushing layout work.\n rootDoesHavePassiveEffects = false;\n rootWithPendingPassiveEffects = root;\n pendingPassiveEffectsLanes = lanes;\n pendingPassiveEffectsRenderPriority = renderPriorityLevel;\n } else {\n // We are done with the effect chain at this point so let's clear the\n // nextEffect pointers to assist with GC. If we have passive effects, we'll\n // clear this in flushPassiveEffects.\n nextEffect = firstEffect;\n\n while (nextEffect !== null) {\n var nextNextEffect = nextEffect.nextEffect;\n nextEffect.nextEffect = null;\n\n if (nextEffect.flags & Deletion) {\n detachFiberAfterEffects(nextEffect);\n }\n\n nextEffect = nextNextEffect;\n }\n } // Read this again, since an effect might have updated it\n\n\n remainingLanes = root.pendingLanes; // Check if there's remaining work on this root\n\n if (remainingLanes !== NoLanes) {\n {\n if (spawnedWorkDuringRender !== null) {\n var expirationTimes = spawnedWorkDuringRender;\n spawnedWorkDuringRender = null;\n\n for (var i = 0; i < expirationTimes.length; i++) {\n scheduleInteractions(root, expirationTimes[i], root.memoizedInteractions);\n }\n }\n\n schedulePendingInteractions(root, remainingLanes);\n }\n } else {\n // If there's no remaining work, we can clear the set of already failed\n // error boundaries.\n legacyErrorBoundariesThatAlreadyFailed = null;\n }\n\n {\n if (!rootDidHavePassiveEffects) {\n // If there are no passive effects, then we can complete the pending interactions.\n // Otherwise, we'll wait until after the passive effects are flushed.\n // Wait to do this until after remaining work has been scheduled,\n // so that we don't prematurely signal complete for interactions when there's e.g. hidden work.\n finishPendingInteractions(root, lanes);\n }\n }\n\n if (remainingLanes === SyncLane) {\n // Count the number of times the root synchronously re-renders without\n // finishing. If there are too many, it indicates an infinite update loop.\n if (root === rootWithNestedUpdates) {\n nestedUpdateCount++;\n } else {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = root;\n }\n } else {\n nestedUpdateCount = 0;\n }\n\n onCommitRoot(finishedWork.stateNode, renderPriorityLevel);\n\n {\n onCommitRoot$1();\n } // Always call this before exiting `commitRoot`, to ensure that any\n // additional work on this root is scheduled.\n\n\n ensureRootIsScheduled(root, now());\n\n if (hasUncaughtError) {\n hasUncaughtError = false;\n var _error3 = firstUncaughtError;\n firstUncaughtError = null;\n throw _error3;\n }\n\n if ((executionContext & LegacyUnbatchedContext) !== NoContext) {\n // a ReactDOM.render-ed root inside of batchedUpdates. The commit fired\n // synchronously, but layout updates should be deferred until the end\n // of the batch.\n\n\n return null;\n } // If layout work was scheduled, flush it now.\n\n\n flushSyncCallbackQueue();\n\n return null;\n}\n\nfunction commitBeforeMutationEffects() {\n while (nextEffect !== null) {\n var current = nextEffect.alternate;\n\n if (!shouldFireAfterActiveInstanceBlur && focusedInstanceHandle !== null) {\n if ((nextEffect.flags & Deletion) !== NoFlags) {\n if (doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n } else {\n // TODO: Move this out of the hot path using a dedicated effect tag.\n if (nextEffect.tag === SuspenseComponent && isSuspenseBoundaryBeingHidden(current, nextEffect) && doesFiberContain(nextEffect, focusedInstanceHandle)) {\n shouldFireAfterActiveInstanceBlur = true;\n }\n }\n }\n\n var flags = nextEffect.flags;\n\n if ((flags & Snapshot) !== NoFlags) {\n setCurrentFiber(nextEffect);\n commitBeforeMutationLifeCycles(current, nextEffect);\n resetCurrentFiber();\n }\n\n if ((flags & Passive) !== NoFlags) {\n // If there are passive effects, schedule a callback to flush at\n // the earliest opportunity.\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n }\n\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitMutationEffects(root, renderPriorityLevel) {\n // TODO: Should probably move the bulk of this function to commitWork.\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & ContentReset) {\n commitResetTextContent(nextEffect);\n }\n\n if (flags & Ref) {\n var current = nextEffect.alternate;\n\n if (current !== null) {\n commitDetachRef(current);\n }\n } // The following switch statement is only concerned about placement,\n // updates, and deletions. To avoid needing to add a case for every possible\n // bitmap value, we remove the secondary effects from the effect tag and\n // switch on that value.\n\n\n var primaryFlags = flags & (Placement | Update | Deletion | Hydrating);\n\n switch (primaryFlags) {\n case Placement:\n {\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n // TODO: findDOMNode doesn't rely on this any more but isMounted does\n // and isMounted is deprecated anyway so we should be able to kill this.\n\n nextEffect.flags &= ~Placement;\n break;\n }\n\n case PlacementAndUpdate:\n {\n // Placement\n commitPlacement(nextEffect); // Clear the \"placement\" from effect tag so that we know that this is\n // inserted, before any life-cycles like componentDidMount gets called.\n\n nextEffect.flags &= ~Placement; // Update\n\n var _current = nextEffect.alternate;\n commitWork(_current, nextEffect);\n break;\n }\n\n case Hydrating:\n {\n nextEffect.flags &= ~Hydrating;\n break;\n }\n\n case HydratingAndUpdate:\n {\n nextEffect.flags &= ~Hydrating; // Update\n\n var _current2 = nextEffect.alternate;\n commitWork(_current2, nextEffect);\n break;\n }\n\n case Update:\n {\n var _current3 = nextEffect.alternate;\n commitWork(_current3, nextEffect);\n break;\n }\n\n case Deletion:\n {\n commitDeletion(root, nextEffect);\n break;\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction commitLayoutEffects(root, committedLanes) {\n\n\n while (nextEffect !== null) {\n setCurrentFiber(nextEffect);\n var flags = nextEffect.flags;\n\n if (flags & (Update | Callback)) {\n var current = nextEffect.alternate;\n commitLifeCycles(root, current, nextEffect);\n }\n\n {\n if (flags & Ref) {\n commitAttachRef(nextEffect);\n }\n }\n\n resetCurrentFiber();\n nextEffect = nextEffect.nextEffect;\n }\n}\n\nfunction flushPassiveEffects() {\n // Returns whether passive effects were flushed.\n if (pendingPassiveEffectsRenderPriority !== NoPriority$1) {\n var priorityLevel = pendingPassiveEffectsRenderPriority > NormalPriority$1 ? NormalPriority$1 : pendingPassiveEffectsRenderPriority;\n pendingPassiveEffectsRenderPriority = NoPriority$1;\n\n {\n return runWithPriority$1(priorityLevel, flushPassiveEffectsImpl);\n }\n }\n\n return false;\n}\nfunction enqueuePendingPassiveHookEffectMount(fiber, effect) {\n pendingPassiveHookEffectsMount.push(effect, fiber);\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\nfunction enqueuePendingPassiveHookEffectUnmount(fiber, effect) {\n pendingPassiveHookEffectsUnmount.push(effect, fiber);\n\n {\n fiber.flags |= PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags |= PassiveUnmountPendingDev;\n }\n }\n\n if (!rootDoesHavePassiveEffects) {\n rootDoesHavePassiveEffects = true;\n scheduleCallback(NormalPriority$1, function () {\n flushPassiveEffects();\n return null;\n });\n }\n}\n\nfunction invokePassiveEffectCreate(effect) {\n var create = effect.create;\n effect.destroy = create();\n}\n\nfunction flushPassiveEffectsImpl() {\n if (rootWithPendingPassiveEffects === null) {\n return false;\n }\n\n var root = rootWithPendingPassiveEffects;\n var lanes = pendingPassiveEffectsLanes;\n rootWithPendingPassiveEffects = null;\n pendingPassiveEffectsLanes = NoLanes;\n\n if (!((executionContext & (RenderContext | CommitContext)) === NoContext)) {\n {\n throw Error( \"Cannot flush passive effects while already rendering.\" );\n }\n }\n\n {\n isFlushingPassiveEffects = true;\n }\n\n var prevExecutionContext = executionContext;\n executionContext |= CommitContext;\n var prevInteractions = pushInteractions(root); // It's important that ALL pending passive effect destroy functions are called\n // before ANY passive effect create functions are called.\n // Otherwise effects in sibling components might interfere with each other.\n // e.g. a destroy function in one component may unintentionally override a ref\n // value set by a create function in another component.\n // Layout effects have the same constraint.\n // First pass: Destroy stale passive effects.\n\n var unmountEffects = pendingPassiveHookEffectsUnmount;\n pendingPassiveHookEffectsUnmount = [];\n\n for (var i = 0; i < unmountEffects.length; i += 2) {\n var _effect = unmountEffects[i];\n var fiber = unmountEffects[i + 1];\n var destroy = _effect.destroy;\n _effect.destroy = undefined;\n\n {\n fiber.flags &= ~PassiveUnmountPendingDev;\n var alternate = fiber.alternate;\n\n if (alternate !== null) {\n alternate.flags &= ~PassiveUnmountPendingDev;\n }\n }\n\n if (typeof destroy === 'function') {\n {\n setCurrentFiber(fiber);\n\n {\n invokeGuardedCallback(null, destroy, null);\n }\n\n if (hasCaughtError()) {\n if (!(fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var error = clearCaughtError();\n captureCommitPhaseError(fiber, error);\n }\n\n resetCurrentFiber();\n }\n }\n } // Second pass: Create new passive effects.\n\n\n var mountEffects = pendingPassiveHookEffectsMount;\n pendingPassiveHookEffectsMount = [];\n\n for (var _i = 0; _i < mountEffects.length; _i += 2) {\n var _effect2 = mountEffects[_i];\n var _fiber = mountEffects[_i + 1];\n\n {\n setCurrentFiber(_fiber);\n\n {\n invokeGuardedCallback(null, invokePassiveEffectCreate, null, _effect2);\n }\n\n if (hasCaughtError()) {\n if (!(_fiber !== null)) {\n {\n throw Error( \"Should be working on an effect.\" );\n }\n }\n\n var _error4 = clearCaughtError();\n\n captureCommitPhaseError(_fiber, _error4);\n }\n\n resetCurrentFiber();\n }\n } // Note: This currently assumes there are no passive effects on the root fiber\n // because the root is not part of its own effect list.\n // This could change in the future.\n\n\n var effect = root.current.firstEffect;\n\n while (effect !== null) {\n var nextNextEffect = effect.nextEffect; // Remove nextEffect pointer to assist GC\n\n effect.nextEffect = null;\n\n if (effect.flags & Deletion) {\n detachFiberAfterEffects(effect);\n }\n\n effect = nextNextEffect;\n }\n\n {\n popInteractions(prevInteractions);\n finishPendingInteractions(root, lanes);\n }\n\n {\n isFlushingPassiveEffects = false;\n }\n\n executionContext = prevExecutionContext;\n flushSyncCallbackQueue(); // If additional passive effects were scheduled, increment a counter. If this\n // exceeds the limit, we'll fire a warning.\n\n nestedPassiveUpdateCount = rootWithPendingPassiveEffects === null ? 0 : nestedPassiveUpdateCount + 1;\n return true;\n}\n\nfunction isAlreadyFailedLegacyErrorBoundary(instance) {\n return legacyErrorBoundariesThatAlreadyFailed !== null && legacyErrorBoundariesThatAlreadyFailed.has(instance);\n}\nfunction markLegacyErrorBoundaryAsFailed(instance) {\n if (legacyErrorBoundariesThatAlreadyFailed === null) {\n legacyErrorBoundariesThatAlreadyFailed = new Set([instance]);\n } else {\n legacyErrorBoundariesThatAlreadyFailed.add(instance);\n }\n}\n\nfunction prepareToThrowUncaughtError(error) {\n if (!hasUncaughtError) {\n hasUncaughtError = true;\n firstUncaughtError = error;\n }\n}\n\nvar onUncaughtError = prepareToThrowUncaughtError;\n\nfunction captureCommitPhaseErrorOnRoot(rootFiber, sourceFiber, error) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createRootErrorUpdate(rootFiber, errorInfo, SyncLane);\n enqueueUpdate(rootFiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(rootFiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n }\n}\n\nfunction captureCommitPhaseError(sourceFiber, error) {\n if (sourceFiber.tag === HostRoot) {\n // Error was thrown at the root. There is no parent, so the root\n // itself should capture it.\n captureCommitPhaseErrorOnRoot(sourceFiber, sourceFiber, error);\n return;\n }\n\n var fiber = sourceFiber.return;\n\n while (fiber !== null) {\n if (fiber.tag === HostRoot) {\n captureCommitPhaseErrorOnRoot(fiber, sourceFiber, error);\n return;\n } else if (fiber.tag === ClassComponent) {\n var ctor = fiber.type;\n var instance = fiber.stateNode;\n\n if (typeof ctor.getDerivedStateFromError === 'function' || typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n var errorInfo = createCapturedValue(error, sourceFiber);\n var update = createClassErrorUpdate(fiber, errorInfo, SyncLane);\n enqueueUpdate(fiber, update);\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(fiber, SyncLane);\n\n if (root !== null) {\n markRootUpdated(root, SyncLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, SyncLane);\n } else {\n // This component has already been unmounted.\n // We can't schedule any follow up work for the root because the fiber is already unmounted,\n // but we can still call the log-only boundary so the error isn't swallowed.\n //\n // TODO This is only a temporary bandaid for the old reconciler fork.\n // We can delete this special case once the new fork is merged.\n if (typeof instance.componentDidCatch === 'function' && !isAlreadyFailedLegacyErrorBoundary(instance)) {\n try {\n instance.componentDidCatch(error, errorInfo);\n } catch (errorToIgnore) {// TODO Ignore this error? Rethrow it?\n // This is kind of an edge case.\n }\n }\n }\n\n return;\n }\n }\n\n fiber = fiber.return;\n }\n}\nfunction pingSuspendedRoot(root, wakeable, pingedLanes) {\n var pingCache = root.pingCache;\n\n if (pingCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n pingCache.delete(wakeable);\n }\n\n var eventTime = requestEventTime();\n markRootPinged(root, pingedLanes);\n\n if (workInProgressRoot === root && isSubsetOfLanes(workInProgressRootRenderLanes, pingedLanes)) {\n // Received a ping at the same priority level at which we're currently\n // rendering. We might want to restart this render. This should mirror\n // the logic of whether or not a root suspends once it completes.\n // TODO: If we're rendering sync either due to Sync, Batched or expired,\n // we should probably never restart.\n // If we're suspended with delay, or if it's a retry, we'll always suspend\n // so we can always restart.\n if (workInProgressRootExitStatus === RootSuspendedWithDelay || workInProgressRootExitStatus === RootSuspended && includesOnlyRetries(workInProgressRootRenderLanes) && now() - globalMostRecentFallbackTime < FALLBACK_THROTTLE_MS) {\n // Restart from the root.\n prepareFreshStack(root, NoLanes);\n } else {\n // Even though we can't restart right now, we might get an\n // opportunity later. So we mark this render as having a ping.\n workInProgressRootPingedLanes = mergeLanes(workInProgressRootPingedLanes, pingedLanes);\n }\n }\n\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, pingedLanes);\n}\n\nfunction retryTimedOutBoundary(boundaryFiber, retryLane) {\n // The boundary fiber (a Suspense component or SuspenseList component)\n // previously was rendered in its fallback state. One of the promises that\n // suspended it has resolved, which means at least part of the tree was\n // likely unblocked. Try rendering again, at a new expiration time.\n if (retryLane === NoLane) {\n retryLane = requestRetryLane(boundaryFiber);\n } // TODO: Special case idle priority?\n\n\n var eventTime = requestEventTime();\n var root = markUpdateLaneFromFiberToRoot(boundaryFiber, retryLane);\n\n if (root !== null) {\n markRootUpdated(root, retryLane, eventTime);\n ensureRootIsScheduled(root, eventTime);\n schedulePendingInteractions(root, retryLane);\n }\n}\nfunction resolveRetryWakeable(boundaryFiber, wakeable) {\n var retryLane = NoLane; // Default\n\n var retryCache;\n\n {\n retryCache = boundaryFiber.stateNode;\n }\n\n if (retryCache !== null) {\n // The wakeable resolved, so we no longer need to memoize, because it will\n // never be thrown again.\n retryCache.delete(wakeable);\n }\n\n retryTimedOutBoundary(boundaryFiber, retryLane);\n} // Computes the next Just Noticeable Difference (JND) boundary.\n// The theory is that a person can't tell the difference between small differences in time.\n// Therefore, if we wait a bit longer than necessary that won't translate to a noticeable\n// difference in the experience. However, waiting for longer might mean that we can avoid\n// showing an intermediate loading state. The longer we have already waited, the harder it\n// is to tell small differences in time. Therefore, the longer we've already waited,\n// the longer we can wait additionally. At some point we have to give up though.\n// We pick a train model where the next boundary commits at a consistent schedule.\n// These particular numbers are vague estimates. We expect to adjust them based on research.\n\nfunction jnd(timeElapsed) {\n return timeElapsed < 120 ? 120 : timeElapsed < 480 ? 480 : timeElapsed < 1080 ? 1080 : timeElapsed < 1920 ? 1920 : timeElapsed < 3000 ? 3000 : timeElapsed < 4320 ? 4320 : ceil(timeElapsed / 1960) * 1960;\n}\n\nfunction checkForNestedUpdates() {\n if (nestedUpdateCount > NESTED_UPDATE_LIMIT) {\n nestedUpdateCount = 0;\n rootWithNestedUpdates = null;\n\n {\n {\n throw Error( \"Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.\" );\n }\n }\n }\n\n {\n if (nestedPassiveUpdateCount > NESTED_PASSIVE_UPDATE_LIMIT) {\n nestedPassiveUpdateCount = 0;\n\n error('Maximum update depth exceeded. This can happen when a component ' + \"calls setState inside useEffect, but useEffect either doesn't \" + 'have a dependency array, or one of the dependencies changes on ' + 'every render.');\n }\n }\n}\n\nfunction flushRenderPhaseStrictModeWarningsInDEV() {\n {\n ReactStrictModeWarnings.flushLegacyContextWarning();\n\n {\n ReactStrictModeWarnings.flushPendingUnsafeLifecycleWarnings();\n }\n }\n}\n\nvar didWarnStateUpdateForNotYetMountedComponent = null;\n\nfunction warnAboutUpdateOnNotYetMountedFiberInDEV(fiber) {\n {\n if ((executionContext & RenderContext) !== NoContext) {\n // We let the other warning about render phase updates deal with this one.\n return;\n }\n\n if (!(fiber.mode & (BlockingMode | ConcurrentMode))) {\n return;\n }\n\n var tag = fiber.tag;\n\n if (tag !== IndeterminateComponent && tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForNotYetMountedComponent !== null) {\n if (didWarnStateUpdateForNotYetMountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForNotYetMountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForNotYetMountedComponent = new Set([componentName]);\n }\n\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on a component that hasn't mounted yet. \" + 'This indicates that you have a side-effect in your render function that ' + 'asynchronously later calls tries to update the component. Move this work to ' + 'useEffect instead.');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = null;\n\nfunction warnAboutUpdateOnUnmountedFiberInDEV(fiber) {\n {\n var tag = fiber.tag;\n\n if (tag !== HostRoot && tag !== ClassComponent && tag !== FunctionComponent && tag !== ForwardRef && tag !== MemoComponent && tag !== SimpleMemoComponent && tag !== Block) {\n // Only warn for user-defined components, not internal ones like Suspense.\n return;\n } // If there are pending passive effects unmounts for this Fiber,\n // we can assume that they would have prevented this update.\n\n\n if ((fiber.flags & PassiveUnmountPendingDev) !== NoFlags) {\n return;\n } // We show the whole stack but dedupe on the top component's name because\n // the problematic code almost always lies inside that component.\n\n\n var componentName = getComponentName(fiber.type) || 'ReactComponent';\n\n if (didWarnStateUpdateForUnmountedComponent !== null) {\n if (didWarnStateUpdateForUnmountedComponent.has(componentName)) {\n return;\n }\n\n didWarnStateUpdateForUnmountedComponent.add(componentName);\n } else {\n didWarnStateUpdateForUnmountedComponent = new Set([componentName]);\n }\n\n if (isFlushingPassiveEffects) ; else {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"Can't perform a React state update on an unmounted component. This \" + 'is a no-op, but it indicates a memory leak in your application. To ' + 'fix, cancel all subscriptions and asynchronous tasks in %s.', tag === ClassComponent ? 'the componentWillUnmount method' : 'a useEffect cleanup function');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar beginWork$1;\n\n{\n var dummyFiber = null;\n\n beginWork$1 = function (current, unitOfWork, lanes) {\n // If a component throws an error, we replay it again in a synchronously\n // dispatched event, so that the debugger will treat it as an uncaught\n // error See ReactErrorUtils for more information.\n // Before entering the begin phase, copy the work-in-progress onto a dummy\n // fiber. If beginWork throws, we'll use this to reset the state.\n var originalWorkInProgressCopy = assignFiberPropertiesInDEV(dummyFiber, unitOfWork);\n\n try {\n return beginWork(current, unitOfWork, lanes);\n } catch (originalError) {\n if (originalError !== null && typeof originalError === 'object' && typeof originalError.then === 'function') {\n // Don't replay promises. Treat everything else like an error.\n throw originalError;\n } // Keep this code in sync with handleError; any changes here must have\n // corresponding changes there.\n\n\n resetContextDependencies();\n resetHooksAfterThrow(); // Don't reset current debug fiber, since we're about to work on the\n // same fiber again.\n // Unwind the failed stack frame\n\n unwindInterruptedWork(unitOfWork); // Restore the original properties of the fiber.\n\n assignFiberPropertiesInDEV(unitOfWork, originalWorkInProgressCopy);\n\n if ( unitOfWork.mode & ProfileMode) {\n // Reset the profiler timer.\n startProfilerTimer(unitOfWork);\n } // Run beginWork again.\n\n\n invokeGuardedCallback(null, beginWork, null, current, unitOfWork, lanes);\n\n if (hasCaughtError()) {\n var replayError = clearCaughtError(); // `invokeGuardedCallback` sometimes sets an expando `_suppressLogging`.\n // Rethrow this error instead of the original one.\n\n throw replayError;\n } else {\n // This branch is reachable if the render phase is impure.\n throw originalError;\n }\n }\n };\n}\n\nvar didWarnAboutUpdateInRender = false;\nvar didWarnAboutUpdateInRenderForAnotherComponent;\n\n{\n didWarnAboutUpdateInRenderForAnotherComponent = new Set();\n}\n\nfunction warnAboutRenderPhaseUpdatesInDEV(fiber) {\n {\n if (isRendering && (executionContext & RenderContext) !== NoContext && !getIsUpdatingOpaqueValueInRenderPhaseInDEV()) {\n switch (fiber.tag) {\n case FunctionComponent:\n case ForwardRef:\n case SimpleMemoComponent:\n {\n var renderingComponentName = workInProgress && getComponentName(workInProgress.type) || 'Unknown'; // Dedupe by the rendering component because it's the one that needs to be fixed.\n\n var dedupeKey = renderingComponentName;\n\n if (!didWarnAboutUpdateInRenderForAnotherComponent.has(dedupeKey)) {\n didWarnAboutUpdateInRenderForAnotherComponent.add(dedupeKey);\n var setStateComponentName = getComponentName(fiber.type) || 'Unknown';\n\n error('Cannot update a component (`%s`) while rendering a ' + 'different component (`%s`). To locate the bad setState() call inside `%s`, ' + 'follow the stack trace as described in https://reactjs.org/link/setstate-in-render', setStateComponentName, renderingComponentName, renderingComponentName);\n }\n\n break;\n }\n\n case ClassComponent:\n {\n if (!didWarnAboutUpdateInRender) {\n error('Cannot update during an existing state transition (such as ' + 'within `render`). Render methods should be a pure ' + 'function of props and state.');\n\n didWarnAboutUpdateInRender = true;\n }\n\n break;\n }\n }\n }\n }\n} // a 'shared' variable that changes when act() opens/closes in tests.\n\n\nvar IsThisRendererActing = {\n current: false\n};\nfunction warnIfNotScopedWithMatchingAct(fiber) {\n {\n if ( IsSomeRendererActing.current === true && IsThisRendererActing.current !== true) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error(\"It looks like you're using the wrong act() around your test interactions.\\n\" + 'Be sure to use the matching version of act() corresponding to your renderer:\\n\\n' + '// for react-dom:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import {act} fr' + \"om 'react-dom/test-utils';\\n\" + '// ...\\n' + 'act(() => ...);\\n\\n' + '// for react-test-renderer:\\n' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'import TestRenderer fr' + \"om react-test-renderer';\\n\" + 'const {act} = TestRenderer;\\n' + '// ...\\n' + 'act(() => ...);');\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\nfunction warnIfNotCurrentlyActingEffectsInDEV(fiber) {\n {\n if ( (fiber.mode & StrictMode) !== NoMode && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n error('An update to %s ran an effect, but was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n }\n }\n}\n\nfunction warnIfNotCurrentlyActingUpdatesInDEV(fiber) {\n {\n if ( executionContext === NoContext && IsSomeRendererActing.current === false && IsThisRendererActing.current === false) {\n var previousFiber = current;\n\n try {\n setCurrentFiber(fiber);\n\n error('An update to %s inside a test was not wrapped in act(...).\\n\\n' + 'When testing, code that causes React state updates should be ' + 'wrapped into act(...):\\n\\n' + 'act(() => {\\n' + ' /* fire events that update state */\\n' + '});\\n' + '/* assert on the output */\\n\\n' + \"This ensures that you're testing the behavior the user would see \" + 'in the browser.' + ' Learn more at https://reactjs.org/link/wrap-tests-with-act', getComponentName(fiber.type));\n } finally {\n if (previousFiber) {\n setCurrentFiber(fiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n}\n\nvar warnIfNotCurrentlyActingUpdatesInDev = warnIfNotCurrentlyActingUpdatesInDEV; // In tests, we want to enforce a mocked scheduler.\n\nvar didWarnAboutUnmockedScheduler = false; // TODO Before we release concurrent mode, revisit this and decide whether a mocked\n// scheduler is the actual recommendation. The alternative could be a testing build,\n// a new lib, or whatever; we dunno just yet. This message is for early adopters\n// to get their tests right.\n\nfunction warnIfUnmockedScheduler(fiber) {\n {\n if (didWarnAboutUnmockedScheduler === false && Scheduler.unstable_flushAllWithoutAsserting === undefined) {\n if (fiber.mode & BlockingMode || fiber.mode & ConcurrentMode) {\n didWarnAboutUnmockedScheduler = true;\n\n error('In Concurrent or Sync modes, the \"scheduler\" module needs to be mocked ' + 'to guarantee consistent behaviour across tests and browsers. ' + 'For example, with jest: \\n' + // Break up requires to avoid accidentally parsing them as dependencies.\n \"jest.mock('scheduler', () => require\" + \"('scheduler/unstable_mock'));\\n\\n\" + 'For more info, visit https://reactjs.org/link/mock-scheduler');\n }\n }\n }\n}\n\nfunction computeThreadID(root, lane) {\n // Interaction threads are unique per root and expiration time.\n // NOTE: Intentionally unsound cast. All that matters is that it's a number\n // and it represents a batch of work. Could make a helper function instead,\n // but meh this is fine for now.\n return lane * 1000 + root.interactionThreadID;\n}\n\nfunction markSpawnedWork(lane) {\n\n if (spawnedWorkDuringRender === null) {\n spawnedWorkDuringRender = [lane];\n } else {\n spawnedWorkDuringRender.push(lane);\n }\n}\n\nfunction scheduleInteractions(root, lane, interactions) {\n\n if (interactions.size > 0) {\n var pendingInteractionMap = root.pendingInteractionMap;\n var pendingInteractions = pendingInteractionMap.get(lane);\n\n if (pendingInteractions != null) {\n interactions.forEach(function (interaction) {\n if (!pendingInteractions.has(interaction)) {\n // Update the pending async work count for previously unscheduled interaction.\n interaction.__count++;\n }\n\n pendingInteractions.add(interaction);\n });\n } else {\n pendingInteractionMap.set(lane, new Set(interactions)); // Update the pending async work count for the current interactions.\n\n interactions.forEach(function (interaction) {\n interaction.__count++;\n });\n }\n\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lane);\n subscriber.onWorkScheduled(interactions, threadID);\n }\n }\n}\n\nfunction schedulePendingInteractions(root, lane) {\n\n scheduleInteractions(root, lane, tracing.__interactionsRef.current);\n}\n\nfunction startWorkOnPendingInteractions(root, lanes) {\n // we can accurately attribute time spent working on it, And so that cascading\n // work triggered during the render phase will be associated with it.\n\n\n var interactions = new Set();\n root.pendingInteractionMap.forEach(function (scheduledInteractions, scheduledLane) {\n if (includesSomeLane(lanes, scheduledLane)) {\n scheduledInteractions.forEach(function (interaction) {\n return interactions.add(interaction);\n });\n }\n }); // Store the current set of interactions on the FiberRoot for a few reasons:\n // We can re-use it in hot functions like performConcurrentWorkOnRoot()\n // without having to recalculate it. We will also use it in commitWork() to\n // pass to any Profiler onRender() hooks. This also provides DevTools with a\n // way to access it when the onCommitRoot() hook is called.\n\n root.memoizedInteractions = interactions;\n\n if (interactions.size > 0) {\n var subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null) {\n var threadID = computeThreadID(root, lanes);\n\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n }\n}\n\nfunction finishPendingInteractions(root, committedLanes) {\n\n var remainingLanesAfterCommit = root.pendingLanes;\n var subscriber;\n\n try {\n subscriber = tracing.__subscriberRef.current;\n\n if (subscriber !== null && root.memoizedInteractions.size > 0) {\n // FIXME: More than one lane can finish in a single commit.\n var threadID = computeThreadID(root, committedLanes);\n subscriber.onWorkStopped(root.memoizedInteractions, threadID);\n }\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n } finally {\n // Clear completed interactions from the pending Map.\n // Unless the render was suspended or cascading work was scheduled,\n // In which case– leave pending interactions until the subsequent render.\n var pendingInteractionMap = root.pendingInteractionMap;\n pendingInteractionMap.forEach(function (scheduledInteractions, lane) {\n // Only decrement the pending interaction count if we're done.\n // If there's still work at the current priority,\n // That indicates that we are waiting for suspense data.\n if (!includesSomeLane(remainingLanesAfterCommit, lane)) {\n pendingInteractionMap.delete(lane);\n scheduledInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n // If the subscriber throws, rethrow it in a separate task\n scheduleCallback(ImmediatePriority$1, function () {\n throw error;\n });\n }\n }\n });\n }\n });\n }\n} // `act` testing API\n\nfunction shouldForceFlushFallbacksInDEV() {\n // Never force flush in production. This function should get stripped out.\n return actingUpdatesScopeDepth > 0;\n}\n// so we can tell if any async act() calls try to run in parallel.\n\n\nvar actingUpdatesScopeDepth = 0;\n\nfunction detachFiberAfterEffects(fiber) {\n fiber.sibling = null;\n fiber.stateNode = null;\n}\n\nvar resolveFamily = null; // $FlowFixMe Flow gets confused by a WeakSet feature check below.\n\nvar failedBoundaries = null;\nvar setRefreshHandler = function (handler) {\n {\n resolveFamily = handler;\n }\n};\nfunction resolveFunctionForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction resolveClassForHotReloading(type) {\n // No implementation differences.\n return resolveFunctionForHotReloading(type);\n}\nfunction resolveForwardRefForHotReloading(type) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return type;\n }\n\n var family = resolveFamily(type);\n\n if (family === undefined) {\n // Check if we're dealing with a real forwardRef. Don't want to crash early.\n if (type !== null && type !== undefined && typeof type.render === 'function') {\n // ForwardRef is special because its resolved .type is an object,\n // but it's possible that we only have its inner render function in the map.\n // If that inner render function is different, we'll build a new forwardRef type.\n var currentRender = resolveFunctionForHotReloading(type.render);\n\n if (type.render !== currentRender) {\n var syntheticType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: currentRender\n };\n\n if (type.displayName !== undefined) {\n syntheticType.displayName = type.displayName;\n }\n\n return syntheticType;\n }\n }\n\n return type;\n } // Use the latest known implementation.\n\n\n return family.current;\n }\n}\nfunction isCompatibleFamilyForHotReloading(fiber, element) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return false;\n }\n\n var prevType = fiber.elementType;\n var nextType = element.type; // If we got here, we know types aren't === equal.\n\n var needsCompareFamilies = false;\n var $$typeofNextType = typeof nextType === 'object' && nextType !== null ? nextType.$$typeof : null;\n\n switch (fiber.tag) {\n case ClassComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case FunctionComponent:\n {\n if (typeof nextType === 'function') {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n // We don't know the inner type yet.\n // We're going to assume that the lazy inner type is stable,\n // and so it is sufficient to avoid reconciling it away.\n // We're not going to unwrap or actually use the new lazy type.\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case ForwardRef:\n {\n if ($$typeofNextType === REACT_FORWARD_REF_TYPE) {\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n case MemoComponent:\n case SimpleMemoComponent:\n {\n if ($$typeofNextType === REACT_MEMO_TYPE) {\n // TODO: if it was but can no longer be simple,\n // we shouldn't set this.\n needsCompareFamilies = true;\n } else if ($$typeofNextType === REACT_LAZY_TYPE) {\n needsCompareFamilies = true;\n }\n\n break;\n }\n\n default:\n return false;\n } // Check if both types have a family and it's the same one.\n\n\n if (needsCompareFamilies) {\n // Note: memo() and forwardRef() we'll compare outer rather than inner type.\n // This means both of them need to be registered to preserve state.\n // If we unwrapped and compared the inner types for wrappers instead,\n // then we would risk falsely saying two separate memo(Foo)\n // calls are equivalent because they wrap the same Foo function.\n var prevFamily = resolveFamily(prevType);\n\n if (prevFamily !== undefined && prevFamily === resolveFamily(nextType)) {\n return true;\n }\n }\n\n return false;\n }\n}\nfunction markFailedErrorBoundaryForHotReloading(fiber) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n if (typeof WeakSet !== 'function') {\n return;\n }\n\n if (failedBoundaries === null) {\n failedBoundaries = new WeakSet();\n }\n\n failedBoundaries.add(fiber);\n }\n}\nvar scheduleRefresh = function (root, update) {\n {\n if (resolveFamily === null) {\n // Hot reloading is disabled.\n return;\n }\n\n var staleFamilies = update.staleFamilies,\n updatedFamilies = update.updatedFamilies;\n flushPassiveEffects();\n flushSync(function () {\n scheduleFibersWithFamiliesRecursively(root.current, updatedFamilies, staleFamilies);\n });\n }\n};\nvar scheduleRoot = function (root, element) {\n {\n if (root.context !== emptyContextObject) {\n // Super edge case: root has a legacy _renderSubtree context\n // but we don't know the parentComponent so we can't pass it.\n // Just ignore. We'll delete this with _renderSubtree code path later.\n return;\n }\n\n flushPassiveEffects();\n flushSync(function () {\n updateContainer(element, root, null, null);\n });\n }\n};\n\nfunction scheduleFibersWithFamiliesRecursively(fiber, updatedFamilies, staleFamilies) {\n {\n var alternate = fiber.alternate,\n child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n if (resolveFamily === null) {\n throw new Error('Expected resolveFamily to be set during hot reload.');\n }\n\n var needsRender = false;\n var needsRemount = false;\n\n if (candidateType !== null) {\n var family = resolveFamily(candidateType);\n\n if (family !== undefined) {\n if (staleFamilies.has(family)) {\n needsRemount = true;\n } else if (updatedFamilies.has(family)) {\n if (tag === ClassComponent) {\n needsRemount = true;\n } else {\n needsRender = true;\n }\n }\n }\n }\n\n if (failedBoundaries !== null) {\n if (failedBoundaries.has(fiber) || alternate !== null && failedBoundaries.has(alternate)) {\n needsRemount = true;\n }\n }\n\n if (needsRemount) {\n fiber._debugNeedsRemount = true;\n }\n\n if (needsRemount || needsRender) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n\n if (child !== null && !needsRemount) {\n scheduleFibersWithFamiliesRecursively(child, updatedFamilies, staleFamilies);\n }\n\n if (sibling !== null) {\n scheduleFibersWithFamiliesRecursively(sibling, updatedFamilies, staleFamilies);\n }\n }\n}\n\nvar findHostInstancesForRefresh = function (root, families) {\n {\n var hostInstances = new Set();\n var types = new Set(families.map(function (family) {\n return family.current;\n }));\n findHostInstancesForMatchingFibersRecursively(root.current, types, hostInstances);\n return hostInstances;\n }\n};\n\nfunction findHostInstancesForMatchingFibersRecursively(fiber, types, hostInstances) {\n {\n var child = fiber.child,\n sibling = fiber.sibling,\n tag = fiber.tag,\n type = fiber.type;\n var candidateType = null;\n\n switch (tag) {\n case FunctionComponent:\n case SimpleMemoComponent:\n case ClassComponent:\n candidateType = type;\n break;\n\n case ForwardRef:\n candidateType = type.render;\n break;\n }\n\n var didMatch = false;\n\n if (candidateType !== null) {\n if (types.has(candidateType)) {\n didMatch = true;\n }\n }\n\n if (didMatch) {\n // We have a match. This only drills down to the closest host components.\n // There's no need to search deeper because for the purpose of giving\n // visual feedback, \"flashing\" outermost parent rectangles is sufficient.\n findHostInstancesForFiberShallowly(fiber, hostInstances);\n } else {\n // If there's no match, maybe there will be one further down in the child tree.\n if (child !== null) {\n findHostInstancesForMatchingFibersRecursively(child, types, hostInstances);\n }\n }\n\n if (sibling !== null) {\n findHostInstancesForMatchingFibersRecursively(sibling, types, hostInstances);\n }\n }\n}\n\nfunction findHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var foundHostInstances = findChildHostInstancesForFiberShallowly(fiber, hostInstances);\n\n if (foundHostInstances) {\n return;\n } // If we didn't find any host children, fallback to closest host parent.\n\n\n var node = fiber;\n\n while (true) {\n switch (node.tag) {\n case HostComponent:\n hostInstances.add(node.stateNode);\n return;\n\n case HostPortal:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n\n case HostRoot:\n hostInstances.add(node.stateNode.containerInfo);\n return;\n }\n\n if (node.return === null) {\n throw new Error('Expected to reach root first.');\n }\n\n node = node.return;\n }\n }\n}\n\nfunction findChildHostInstancesForFiberShallowly(fiber, hostInstances) {\n {\n var node = fiber;\n var foundHostInstances = false;\n\n while (true) {\n if (node.tag === HostComponent) {\n // We got a match.\n foundHostInstances = true;\n hostInstances.add(node.stateNode); // There may still be more, so keep searching.\n } else if (node.child !== null) {\n node.child.return = node;\n node = node.child;\n continue;\n }\n\n if (node === fiber) {\n return foundHostInstances;\n }\n\n while (node.sibling === null) {\n if (node.return === null || node.return === fiber) {\n return foundHostInstances;\n }\n\n node = node.return;\n }\n\n node.sibling.return = node.return;\n node = node.sibling;\n }\n }\n\n return false;\n}\n\nvar hasBadMapPolyfill;\n\n{\n hasBadMapPolyfill = false;\n\n try {\n var nonExtensibleObject = Object.preventExtensions({});\n /* eslint-disable no-new */\n\n new Map([[nonExtensibleObject, null]]);\n new Set([nonExtensibleObject]);\n /* eslint-enable no-new */\n } catch (e) {\n // TODO: Consider warning about bad polyfills\n hasBadMapPolyfill = true;\n }\n}\n\nvar debugCounter = 1;\n\nfunction FiberNode(tag, pendingProps, key, mode) {\n // Instance\n this.tag = tag;\n this.key = key;\n this.elementType = null;\n this.type = null;\n this.stateNode = null; // Fiber\n\n this.return = null;\n this.child = null;\n this.sibling = null;\n this.index = 0;\n this.ref = null;\n this.pendingProps = pendingProps;\n this.memoizedProps = null;\n this.updateQueue = null;\n this.memoizedState = null;\n this.dependencies = null;\n this.mode = mode; // Effects\n\n this.flags = NoFlags;\n this.nextEffect = null;\n this.firstEffect = null;\n this.lastEffect = null;\n this.lanes = NoLanes;\n this.childLanes = NoLanes;\n this.alternate = null;\n\n {\n // Note: The following is done to avoid a v8 performance cliff.\n //\n // Initializing the fields below to smis and later updating them with\n // double values will cause Fibers to end up having separate shapes.\n // This behavior/bug has something to do with Object.preventExtension().\n // Fortunately this only impacts DEV builds.\n // Unfortunately it makes React unusably slow for some applications.\n // To work around this, initialize the fields below with doubles.\n //\n // Learn more about this here:\n // https://github.com/facebook/react/issues/14365\n // https://bugs.chromium.org/p/v8/issues/detail?id=8538\n this.actualDuration = Number.NaN;\n this.actualStartTime = Number.NaN;\n this.selfBaseDuration = Number.NaN;\n this.treeBaseDuration = Number.NaN; // It's okay to replace the initial doubles with smis after initialization.\n // This won't trigger the performance cliff mentioned above,\n // and it simplifies other profiler code (including DevTools).\n\n this.actualDuration = 0;\n this.actualStartTime = -1;\n this.selfBaseDuration = 0;\n this.treeBaseDuration = 0;\n }\n\n {\n // This isn't directly used but is handy for debugging internals:\n this._debugID = debugCounter++;\n this._debugSource = null;\n this._debugOwner = null;\n this._debugNeedsRemount = false;\n this._debugHookTypes = null;\n\n if (!hasBadMapPolyfill && typeof Object.preventExtensions === 'function') {\n Object.preventExtensions(this);\n }\n }\n} // This is a constructor function, rather than a POJO constructor, still\n// please ensure we do the following:\n// 1) Nobody should add any instance methods on this. Instance methods can be\n// more difficult to predict when they get optimized and they are almost\n// never inlined properly in static compilers.\n// 2) Nobody should rely on `instanceof Fiber` for type testing. We should\n// always know when it is a fiber.\n// 3) We might want to experiment with using numeric keys since they are easier\n// to optimize in a non-JIT environment.\n// 4) We can easily go from a constructor to a createFiber object literal if that\n// is faster.\n// 5) It should be easy to port this to a C struct and keep a C implementation\n// compatible.\n\n\nvar createFiber = function (tag, pendingProps, key, mode) {\n // $FlowFixMe: the shapes are exact here but Flow doesn't like constructors\n return new FiberNode(tag, pendingProps, key, mode);\n};\n\nfunction shouldConstruct$1(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction isSimpleFunctionComponent(type) {\n return typeof type === 'function' && !shouldConstruct$1(type) && type.defaultProps === undefined;\n}\nfunction resolveLazyComponentTag(Component) {\n if (typeof Component === 'function') {\n return shouldConstruct$1(Component) ? ClassComponent : FunctionComponent;\n } else if (Component !== undefined && Component !== null) {\n var $$typeof = Component.$$typeof;\n\n if ($$typeof === REACT_FORWARD_REF_TYPE) {\n return ForwardRef;\n }\n\n if ($$typeof === REACT_MEMO_TYPE) {\n return MemoComponent;\n }\n }\n\n return IndeterminateComponent;\n} // This is used to create an alternate fiber to do work on.\n\nfunction createWorkInProgress(current, pendingProps) {\n var workInProgress = current.alternate;\n\n if (workInProgress === null) {\n // We use a double buffering pooling technique because we know that we'll\n // only ever need at most two versions of a tree. We pool the \"other\" unused\n // node that we're free to reuse. This is lazily created to avoid allocating\n // extra objects for things that are never updated. It also allow us to\n // reclaim the extra memory if needed.\n workInProgress = createFiber(current.tag, pendingProps, current.key, current.mode);\n workInProgress.elementType = current.elementType;\n workInProgress.type = current.type;\n workInProgress.stateNode = current.stateNode;\n\n {\n // DEV-only fields\n workInProgress._debugID = current._debugID;\n workInProgress._debugSource = current._debugSource;\n workInProgress._debugOwner = current._debugOwner;\n workInProgress._debugHookTypes = current._debugHookTypes;\n }\n\n workInProgress.alternate = current;\n current.alternate = workInProgress;\n } else {\n workInProgress.pendingProps = pendingProps; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // We already have an alternate.\n // Reset the effect tag.\n\n workInProgress.flags = NoFlags; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n\n {\n // We intentionally reset, rather than copy, actualDuration & actualStartTime.\n // This prevents time from endlessly accumulating in new commits.\n // This has the downside of resetting values for different priority renders,\n // But works for yielding (the common case) and should support resuming.\n workInProgress.actualDuration = 0;\n workInProgress.actualStartTime = -1;\n }\n }\n\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n }; // These will be overridden during the parent's reconciliation\n\n workInProgress.sibling = current.sibling;\n workInProgress.index = current.index;\n workInProgress.ref = current.ref;\n\n {\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n\n {\n workInProgress._debugNeedsRemount = current._debugNeedsRemount;\n\n switch (workInProgress.tag) {\n case IndeterminateComponent:\n case FunctionComponent:\n case SimpleMemoComponent:\n workInProgress.type = resolveFunctionForHotReloading(current.type);\n break;\n\n case ClassComponent:\n workInProgress.type = resolveClassForHotReloading(current.type);\n break;\n\n case ForwardRef:\n workInProgress.type = resolveForwardRefForHotReloading(current.type);\n break;\n }\n }\n\n return workInProgress;\n} // Used to reuse a Fiber for a second pass.\n\nfunction resetWorkInProgress(workInProgress, renderLanes) {\n // This resets the Fiber to what createFiber or createWorkInProgress would\n // have set the values to before during the first pass. Ideally this wouldn't\n // be necessary but unfortunately many code paths reads from the workInProgress\n // when they should be reading from current and writing to workInProgress.\n // We assume pendingProps, index, key, ref, return are still untouched to\n // avoid doing another reconciliation.\n // Reset the effect tag but keep any Placement tags, since that's something\n // that child fiber is setting, not the reconciliation.\n workInProgress.flags &= Placement; // The effect list is no longer valid.\n\n workInProgress.nextEffect = null;\n workInProgress.firstEffect = null;\n workInProgress.lastEffect = null;\n var current = workInProgress.alternate;\n\n if (current === null) {\n // Reset to createFiber's initial values.\n workInProgress.childLanes = NoLanes;\n workInProgress.lanes = renderLanes;\n workInProgress.child = null;\n workInProgress.memoizedProps = null;\n workInProgress.memoizedState = null;\n workInProgress.updateQueue = null;\n workInProgress.dependencies = null;\n workInProgress.stateNode = null;\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = 0;\n workInProgress.treeBaseDuration = 0;\n }\n } else {\n // Reset to the cloned values that createWorkInProgress would've.\n workInProgress.childLanes = current.childLanes;\n workInProgress.lanes = current.lanes;\n workInProgress.child = current.child;\n workInProgress.memoizedProps = current.memoizedProps;\n workInProgress.memoizedState = current.memoizedState;\n workInProgress.updateQueue = current.updateQueue; // Needed because Blocks store data on type.\n\n workInProgress.type = current.type; // Clone the dependencies object. This is mutated during the render phase, so\n // it cannot be shared with the current fiber.\n\n var currentDependencies = current.dependencies;\n workInProgress.dependencies = currentDependencies === null ? null : {\n lanes: currentDependencies.lanes,\n firstContext: currentDependencies.firstContext\n };\n\n {\n // Note: We don't reset the actualTime counts. It's useful to accumulate\n // actual time across multiple render passes.\n workInProgress.selfBaseDuration = current.selfBaseDuration;\n workInProgress.treeBaseDuration = current.treeBaseDuration;\n }\n }\n\n return workInProgress;\n}\nfunction createHostRootFiber(tag) {\n var mode;\n\n if (tag === ConcurrentRoot) {\n mode = ConcurrentMode | BlockingMode | StrictMode;\n } else if (tag === BlockingRoot) {\n mode = BlockingMode | StrictMode;\n } else {\n mode = NoMode;\n }\n\n if ( isDevToolsPresent) {\n // Always collect profile timings when DevTools are present.\n // This enables DevTools to start capturing timing at any point–\n // Without some nodes in the tree having empty base times.\n mode |= ProfileMode;\n }\n\n return createFiber(HostRoot, null, null, mode);\n}\nfunction createFiberFromTypeAndProps(type, // React$ElementType\nkey, pendingProps, owner, mode, lanes) {\n var fiberTag = IndeterminateComponent; // The resolved type is set if we know what the final type will be. I.e. it's not lazy.\n\n var resolvedType = type;\n\n if (typeof type === 'function') {\n if (shouldConstruct$1(type)) {\n fiberTag = ClassComponent;\n\n {\n resolvedType = resolveClassForHotReloading(resolvedType);\n }\n } else {\n {\n resolvedType = resolveFunctionForHotReloading(resolvedType);\n }\n }\n } else if (typeof type === 'string') {\n fiberTag = HostComponent;\n } else {\n getTag: switch (type) {\n case REACT_FRAGMENT_TYPE:\n return createFiberFromFragment(pendingProps.children, mode, lanes, key);\n\n case REACT_DEBUG_TRACING_MODE_TYPE:\n fiberTag = Mode;\n mode |= DebugTracingMode;\n break;\n\n case REACT_STRICT_MODE_TYPE:\n fiberTag = Mode;\n mode |= StrictMode;\n break;\n\n case REACT_PROFILER_TYPE:\n return createFiberFromProfiler(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_TYPE:\n return createFiberFromSuspense(pendingProps, mode, lanes, key);\n\n case REACT_SUSPENSE_LIST_TYPE:\n return createFiberFromSuspenseList(pendingProps, mode, lanes, key);\n\n case REACT_OFFSCREEN_TYPE:\n return createFiberFromOffscreen(pendingProps, mode, lanes, key);\n\n case REACT_LEGACY_HIDDEN_TYPE:\n return createFiberFromLegacyHidden(pendingProps, mode, lanes, key);\n\n case REACT_SCOPE_TYPE:\n\n // eslint-disable-next-line no-fallthrough\n\n default:\n {\n if (typeof type === 'object' && type !== null) {\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n fiberTag = ContextProvider;\n break getTag;\n\n case REACT_CONTEXT_TYPE:\n // This is a consumer\n fiberTag = ContextConsumer;\n break getTag;\n\n case REACT_FORWARD_REF_TYPE:\n fiberTag = ForwardRef;\n\n {\n resolvedType = resolveForwardRefForHotReloading(resolvedType);\n }\n\n break getTag;\n\n case REACT_MEMO_TYPE:\n fiberTag = MemoComponent;\n break getTag;\n\n case REACT_LAZY_TYPE:\n fiberTag = LazyComponent;\n resolvedType = null;\n break getTag;\n\n case REACT_BLOCK_TYPE:\n fiberTag = Block;\n break getTag;\n }\n }\n\n var info = '';\n\n {\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and \" + 'named imports.';\n }\n\n var ownerName = owner ? getComponentName(owner.type) : null;\n\n if (ownerName) {\n info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n }\n }\n\n {\n {\n throw Error( \"Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: \" + (type == null ? type : typeof type) + \".\" + info );\n }\n }\n }\n }\n }\n\n var fiber = createFiber(fiberTag, pendingProps, key, mode);\n fiber.elementType = type;\n fiber.type = resolvedType;\n fiber.lanes = lanes;\n\n {\n fiber._debugOwner = owner;\n }\n\n return fiber;\n}\nfunction createFiberFromElement(element, mode, lanes) {\n var owner = null;\n\n {\n owner = element._owner;\n }\n\n var type = element.type;\n var key = element.key;\n var pendingProps = element.props;\n var fiber = createFiberFromTypeAndProps(type, key, pendingProps, owner, mode, lanes);\n\n {\n fiber._debugSource = element._source;\n fiber._debugOwner = element._owner;\n }\n\n return fiber;\n}\nfunction createFiberFromFragment(elements, mode, lanes, key) {\n var fiber = createFiber(Fragment, elements, key, mode);\n fiber.lanes = lanes;\n return fiber;\n}\n\nfunction createFiberFromProfiler(pendingProps, mode, lanes, key) {\n {\n if (typeof pendingProps.id !== 'string') {\n error('Profiler must specify an \"id\" as a prop');\n }\n }\n\n var fiber = createFiber(Profiler, pendingProps, key, mode | ProfileMode); // TODO: The Profiler fiber shouldn't have a type. It has a tag.\n\n fiber.elementType = REACT_PROFILER_TYPE;\n fiber.type = REACT_PROFILER_TYPE;\n fiber.lanes = lanes;\n\n {\n fiber.stateNode = {\n effectDuration: 0,\n passiveEffectDuration: 0\n };\n }\n\n return fiber;\n}\n\nfunction createFiberFromSuspense(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseComponent, pendingProps, key, mode); // TODO: The SuspenseComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n fiber.type = REACT_SUSPENSE_TYPE;\n fiber.elementType = REACT_SUSPENSE_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromSuspenseList(pendingProps, mode, lanes, key) {\n var fiber = createFiber(SuspenseListComponent, pendingProps, key, mode);\n\n {\n // TODO: The SuspenseListComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n fiber.type = REACT_SUSPENSE_LIST_TYPE;\n }\n\n fiber.elementType = REACT_SUSPENSE_LIST_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromOffscreen(pendingProps, mode, lanes, key) {\n var fiber = createFiber(OffscreenComponent, pendingProps, key, mode); // TODO: The OffscreenComponent fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_OFFSCREEN_TYPE;\n }\n\n fiber.elementType = REACT_OFFSCREEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromLegacyHidden(pendingProps, mode, lanes, key) {\n var fiber = createFiber(LegacyHiddenComponent, pendingProps, key, mode); // TODO: The LegacyHidden fiber shouldn't have a type. It has a tag.\n // This needs to be fixed in getComponentName so that it relies on the tag\n // instead.\n\n {\n fiber.type = REACT_LEGACY_HIDDEN_TYPE;\n }\n\n fiber.elementType = REACT_LEGACY_HIDDEN_TYPE;\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromText(content, mode, lanes) {\n var fiber = createFiber(HostText, content, null, mode);\n fiber.lanes = lanes;\n return fiber;\n}\nfunction createFiberFromHostInstanceForDeletion() {\n var fiber = createFiber(HostComponent, null, null, NoMode); // TODO: These should not need a type.\n\n fiber.elementType = 'DELETED';\n fiber.type = 'DELETED';\n return fiber;\n}\nfunction createFiberFromPortal(portal, mode, lanes) {\n var pendingProps = portal.children !== null ? portal.children : [];\n var fiber = createFiber(HostPortal, pendingProps, portal.key, mode);\n fiber.lanes = lanes;\n fiber.stateNode = {\n containerInfo: portal.containerInfo,\n pendingChildren: null,\n // Used by persistent updates\n implementation: portal.implementation\n };\n return fiber;\n} // Used for stashing WIP properties to replay failed work in DEV.\n\nfunction assignFiberPropertiesInDEV(target, source) {\n if (target === null) {\n // This Fiber's initial properties will always be overwritten.\n // We only use a Fiber to ensure the same hidden class so DEV isn't slow.\n target = createFiber(IndeterminateComponent, null, null, NoMode);\n } // This is intentionally written as a list of all properties.\n // We tried to use Object.assign() instead but this is called in\n // the hottest path, and Object.assign() was too slow:\n // https://github.com/facebook/react/issues/12502\n // This code is DEV-only so size is not a concern.\n\n\n target.tag = source.tag;\n target.key = source.key;\n target.elementType = source.elementType;\n target.type = source.type;\n target.stateNode = source.stateNode;\n target.return = source.return;\n target.child = source.child;\n target.sibling = source.sibling;\n target.index = source.index;\n target.ref = source.ref;\n target.pendingProps = source.pendingProps;\n target.memoizedProps = source.memoizedProps;\n target.updateQueue = source.updateQueue;\n target.memoizedState = source.memoizedState;\n target.dependencies = source.dependencies;\n target.mode = source.mode;\n target.flags = source.flags;\n target.nextEffect = source.nextEffect;\n target.firstEffect = source.firstEffect;\n target.lastEffect = source.lastEffect;\n target.lanes = source.lanes;\n target.childLanes = source.childLanes;\n target.alternate = source.alternate;\n\n {\n target.actualDuration = source.actualDuration;\n target.actualStartTime = source.actualStartTime;\n target.selfBaseDuration = source.selfBaseDuration;\n target.treeBaseDuration = source.treeBaseDuration;\n }\n\n target._debugID = source._debugID;\n target._debugSource = source._debugSource;\n target._debugOwner = source._debugOwner;\n target._debugNeedsRemount = source._debugNeedsRemount;\n target._debugHookTypes = source._debugHookTypes;\n return target;\n}\n\nfunction FiberRootNode(containerInfo, tag, hydrate) {\n this.tag = tag;\n this.containerInfo = containerInfo;\n this.pendingChildren = null;\n this.current = null;\n this.pingCache = null;\n this.finishedWork = null;\n this.timeoutHandle = noTimeout;\n this.context = null;\n this.pendingContext = null;\n this.hydrate = hydrate;\n this.callbackNode = null;\n this.callbackPriority = NoLanePriority;\n this.eventTimes = createLaneMap(NoLanes);\n this.expirationTimes = createLaneMap(NoTimestamp);\n this.pendingLanes = NoLanes;\n this.suspendedLanes = NoLanes;\n this.pingedLanes = NoLanes;\n this.expiredLanes = NoLanes;\n this.mutableReadLanes = NoLanes;\n this.finishedLanes = NoLanes;\n this.entangledLanes = NoLanes;\n this.entanglements = createLaneMap(NoLanes);\n\n {\n this.mutableSourceEagerHydrationData = null;\n }\n\n {\n this.interactionThreadID = tracing.unstable_getThreadID();\n this.memoizedInteractions = new Set();\n this.pendingInteractionMap = new Map();\n }\n\n {\n switch (tag) {\n case BlockingRoot:\n this._debugRootType = 'createBlockingRoot()';\n break;\n\n case ConcurrentRoot:\n this._debugRootType = 'createRoot()';\n break;\n\n case LegacyRoot:\n this._debugRootType = 'createLegacyRoot()';\n break;\n }\n }\n}\n\nfunction createFiberRoot(containerInfo, tag, hydrate, hydrationCallbacks) {\n var root = new FiberRootNode(containerInfo, tag, hydrate);\n // stateNode is any.\n\n\n var uninitializedFiber = createHostRootFiber(tag);\n root.current = uninitializedFiber;\n uninitializedFiber.stateNode = root;\n initializeUpdateQueue(uninitializedFiber);\n return root;\n}\n\n// This ensures that the version used for server rendering matches the one\n// that is eventually read during hydration.\n// If they don't match there's a potential tear and a full deopt render is required.\n\nfunction registerMutableSourceForHydration(root, mutableSource) {\n var getVersion = mutableSource._getVersion;\n var version = getVersion(mutableSource._source); // TODO Clear this data once all pending hydration work is finished.\n // Retaining it forever may interfere with GC.\n\n if (root.mutableSourceEagerHydrationData == null) {\n root.mutableSourceEagerHydrationData = [mutableSource, version];\n } else {\n root.mutableSourceEagerHydrationData.push(mutableSource, version);\n }\n}\n\nfunction createPortal(children, containerInfo, // TODO: figure out the API for cross-renderer implementation.\nimplementation) {\n var key = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n return {\n // This tag allow us to uniquely identify this as a React Portal\n $$typeof: REACT_PORTAL_TYPE,\n key: key == null ? null : '' + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n}\n\nvar didWarnAboutNestedUpdates;\nvar didWarnAboutFindNodeInStrictMode;\n\n{\n didWarnAboutNestedUpdates = false;\n didWarnAboutFindNodeInStrictMode = {};\n}\n\nfunction getContextForSubtree(parentComponent) {\n if (!parentComponent) {\n return emptyContextObject;\n }\n\n var fiber = get(parentComponent);\n var parentContext = findCurrentUnmaskedContext(fiber);\n\n if (fiber.tag === ClassComponent) {\n var Component = fiber.type;\n\n if (isContextProvider(Component)) {\n return processChildContext(fiber, Component, parentContext);\n }\n }\n\n return parentContext;\n}\n\nfunction findHostInstanceWithWarning(component, methodName) {\n {\n var fiber = get(component);\n\n if (fiber === undefined) {\n if (typeof component.render === 'function') {\n {\n {\n throw Error( \"Unable to find node on an unmounted component.\" );\n }\n }\n } else {\n {\n {\n throw Error( \"Argument appears to not be a ReactComponent. Keys: \" + Object.keys(component) );\n }\n }\n }\n }\n\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.mode & StrictMode) {\n var componentName = getComponentName(fiber.type) || 'Component';\n\n if (!didWarnAboutFindNodeInStrictMode[componentName]) {\n didWarnAboutFindNodeInStrictMode[componentName] = true;\n var previousFiber = current;\n\n try {\n setCurrentFiber(hostFiber);\n\n if (fiber.mode & StrictMode) {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which is inside StrictMode. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n } else {\n error('%s is deprecated in StrictMode. ' + '%s was passed an instance of %s which renders StrictMode children. ' + 'Instead, add a ref directly to the element you want to reference. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-find-node', methodName, methodName, componentName);\n }\n } finally {\n // Ideally this should reset to previous but this shouldn't be called in\n // render and there's another warning for that anyway.\n if (previousFiber) {\n setCurrentFiber(previousFiber);\n } else {\n resetCurrentFiber();\n }\n }\n }\n }\n\n return hostFiber.stateNode;\n }\n}\n\nfunction createContainer(containerInfo, tag, hydrate, hydrationCallbacks) {\n return createFiberRoot(containerInfo, tag, hydrate);\n}\nfunction updateContainer(element, container, parentComponent, callback) {\n {\n onScheduleRoot(container, element);\n }\n\n var current$1 = container.current;\n var eventTime = requestEventTime();\n\n {\n // $FlowExpectedError - jest isn't a global, and isn't recognized outside of tests\n if ('undefined' !== typeof jest) {\n warnIfUnmockedScheduler(current$1);\n warnIfNotScopedWithMatchingAct(current$1);\n }\n }\n\n var lane = requestUpdateLane(current$1);\n\n var context = getContextForSubtree(parentComponent);\n\n if (container.context === null) {\n container.context = context;\n } else {\n container.pendingContext = context;\n }\n\n {\n if (isRendering && current !== null && !didWarnAboutNestedUpdates) {\n didWarnAboutNestedUpdates = true;\n\n error('Render methods should be a pure function of props and state; ' + 'triggering nested component updates from render is not allowed. ' + 'If necessary, trigger nested updates in componentDidUpdate.\\n\\n' + 'Check the render method of %s.', getComponentName(current.type) || 'Unknown');\n }\n }\n\n var update = createUpdate(eventTime, lane); // Caution: React DevTools currently depends on this property\n // being called \"element\".\n\n update.payload = {\n element: element\n };\n callback = callback === undefined ? null : callback;\n\n if (callback !== null) {\n {\n if (typeof callback !== 'function') {\n error('render(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callback);\n }\n }\n\n update.callback = callback;\n }\n\n enqueueUpdate(current$1, update);\n scheduleUpdateOnFiber(current$1, lane, eventTime);\n return lane;\n}\nfunction getPublicRootInstance(container) {\n var containerFiber = container.current;\n\n if (!containerFiber.child) {\n return null;\n }\n\n switch (containerFiber.child.tag) {\n case HostComponent:\n return getPublicInstance(containerFiber.child.stateNode);\n\n default:\n return containerFiber.child.stateNode;\n }\n}\n\nfunction markRetryLaneImpl(fiber, retryLane) {\n var suspenseState = fiber.memoizedState;\n\n if (suspenseState !== null && suspenseState.dehydrated !== null) {\n suspenseState.retryLane = higherPriorityLane(suspenseState.retryLane, retryLane);\n }\n} // Increases the priority of thennables when they resolve within this boundary.\n\n\nfunction markRetryLaneIfNotHydrated(fiber, retryLane) {\n markRetryLaneImpl(fiber, retryLane);\n var alternate = fiber.alternate;\n\n if (alternate) {\n markRetryLaneImpl(alternate, retryLane);\n }\n}\n\nfunction attemptUserBlockingHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = InputDiscreteHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptContinuousHydration$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority and they should not suspend on I/O,\n // since you have to wrap anything that might suspend in\n // Suspense.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = SelectiveHydrationLane;\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction attemptHydrationAtCurrentPriority$1(fiber) {\n if (fiber.tag !== SuspenseComponent) {\n // We ignore HostRoots here because we can't increase\n // their priority other than synchronously flush it.\n return;\n }\n\n var eventTime = requestEventTime();\n var lane = requestUpdateLane(fiber);\n scheduleUpdateOnFiber(fiber, lane, eventTime);\n markRetryLaneIfNotHydrated(fiber, lane);\n}\nfunction runWithPriority$2(priority, fn) {\n\n try {\n setCurrentUpdateLanePriority(priority);\n return fn();\n } finally {\n }\n}\nfunction findHostInstanceWithNoPortals(fiber) {\n var hostFiber = findCurrentHostFiberWithNoPortals(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n if (hostFiber.tag === FundamentalComponent) {\n return hostFiber.stateNode.instance;\n }\n\n return hostFiber.stateNode;\n}\n\nvar shouldSuspendImpl = function (fiber) {\n return false;\n};\n\nfunction shouldSuspend(fiber) {\n return shouldSuspendImpl(fiber);\n}\nvar overrideHookState = null;\nvar overrideHookStateDeletePath = null;\nvar overrideHookStateRenamePath = null;\nvar overrideProps = null;\nvar overridePropsDeletePath = null;\nvar overridePropsRenamePath = null;\nvar scheduleUpdate = null;\nvar setSuspenseHandler = null;\n\n{\n var copyWithDeleteImpl = function (obj, path, index) {\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === path.length) {\n if (Array.isArray(updated)) {\n updated.splice(key, 1);\n } else {\n delete updated[key];\n }\n\n return updated;\n } // $FlowFixMe number or string is fine here\n\n\n updated[key] = copyWithDeleteImpl(obj[key], path, index + 1);\n return updated;\n };\n\n var copyWithDelete = function (obj, path) {\n return copyWithDeleteImpl(obj, path, 0);\n };\n\n var copyWithRenameImpl = function (obj, oldPath, newPath, index) {\n var oldKey = oldPath[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj);\n\n if (index + 1 === oldPath.length) {\n var newKey = newPath[index]; // $FlowFixMe number or string is fine here\n\n updated[newKey] = updated[oldKey];\n\n if (Array.isArray(updated)) {\n updated.splice(oldKey, 1);\n } else {\n delete updated[oldKey];\n }\n } else {\n // $FlowFixMe number or string is fine here\n updated[oldKey] = copyWithRenameImpl( // $FlowFixMe number or string is fine here\n obj[oldKey], oldPath, newPath, index + 1);\n }\n\n return updated;\n };\n\n var copyWithRename = function (obj, oldPath, newPath) {\n if (oldPath.length !== newPath.length) {\n warn('copyWithRename() expects paths of the same length');\n\n return;\n } else {\n for (var i = 0; i < newPath.length - 1; i++) {\n if (oldPath[i] !== newPath[i]) {\n warn('copyWithRename() expects paths to be the same except for the deepest key');\n\n return;\n }\n }\n }\n\n return copyWithRenameImpl(obj, oldPath, newPath, 0);\n };\n\n var copyWithSetImpl = function (obj, path, index, value) {\n if (index >= path.length) {\n return value;\n }\n\n var key = path[index];\n var updated = Array.isArray(obj) ? obj.slice() : _assign({}, obj); // $FlowFixMe number or string is fine here\n\n updated[key] = copyWithSetImpl(obj[key], path, index + 1, value);\n return updated;\n };\n\n var copyWithSet = function (obj, path, value) {\n return copyWithSetImpl(obj, path, 0, value);\n };\n\n var findHook = function (fiber, id) {\n // For now, the \"id\" of stateful hooks is just the stateful hook index.\n // This may change in the future with e.g. nested hooks.\n var currentHook = fiber.memoizedState;\n\n while (currentHook !== null && id > 0) {\n currentHook = currentHook.next;\n id--;\n }\n\n return currentHook;\n }; // Support DevTools editable values for useState and useReducer.\n\n\n overrideHookState = function (fiber, id, path, value) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithSet(hook.memoizedState, path, value);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateDeletePath = function (fiber, id, path) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithDelete(hook.memoizedState, path);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n };\n\n overrideHookStateRenamePath = function (fiber, id, oldPath, newPath) {\n var hook = findHook(fiber, id);\n\n if (hook !== null) {\n var newState = copyWithRename(hook.memoizedState, oldPath, newPath);\n hook.memoizedState = newState;\n hook.baseState = newState; // We aren't actually adding an update to the queue,\n // because there is no update we can add for useReducer hooks that won't trigger an error.\n // (There's no appropriate action type for DevTools overrides.)\n // As a result though, React will see the scheduled update as a noop and bailout.\n // Shallow cloning props works as a workaround for now to bypass the bailout check.\n\n fiber.memoizedProps = _assign({}, fiber.memoizedProps);\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n }\n }; // Support DevTools props for function components, forwardRef, memo, host components, etc.\n\n\n overrideProps = function (fiber, path, value) {\n fiber.pendingProps = copyWithSet(fiber.memoizedProps, path, value);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsDeletePath = function (fiber, path) {\n fiber.pendingProps = copyWithDelete(fiber.memoizedProps, path);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n overridePropsRenamePath = function (fiber, oldPath, newPath) {\n fiber.pendingProps = copyWithRename(fiber.memoizedProps, oldPath, newPath);\n\n if (fiber.alternate) {\n fiber.alternate.pendingProps = fiber.pendingProps;\n }\n\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n scheduleUpdate = function (fiber) {\n scheduleUpdateOnFiber(fiber, SyncLane, NoTimestamp);\n };\n\n setSuspenseHandler = function (newShouldSuspendImpl) {\n shouldSuspendImpl = newShouldSuspendImpl;\n };\n}\n\nfunction findHostInstanceByFiber(fiber) {\n var hostFiber = findCurrentHostFiber(fiber);\n\n if (hostFiber === null) {\n return null;\n }\n\n return hostFiber.stateNode;\n}\n\nfunction emptyFindFiberByHostInstance(instance) {\n return null;\n}\n\nfunction getCurrentFiberForDevTools() {\n return current;\n}\n\nfunction injectIntoDevTools(devToolsConfig) {\n var findFiberByHostInstance = devToolsConfig.findFiberByHostInstance;\n var ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\n return injectInternals({\n bundleType: devToolsConfig.bundleType,\n version: devToolsConfig.version,\n rendererPackageName: devToolsConfig.rendererPackageName,\n rendererConfig: devToolsConfig.rendererConfig,\n overrideHookState: overrideHookState,\n overrideHookStateDeletePath: overrideHookStateDeletePath,\n overrideHookStateRenamePath: overrideHookStateRenamePath,\n overrideProps: overrideProps,\n overridePropsDeletePath: overridePropsDeletePath,\n overridePropsRenamePath: overridePropsRenamePath,\n setSuspenseHandler: setSuspenseHandler,\n scheduleUpdate: scheduleUpdate,\n currentDispatcherRef: ReactCurrentDispatcher,\n findHostInstanceByFiber: findHostInstanceByFiber,\n findFiberByHostInstance: findFiberByHostInstance || emptyFindFiberByHostInstance,\n // React Refresh\n findHostInstancesForRefresh: findHostInstancesForRefresh ,\n scheduleRefresh: scheduleRefresh ,\n scheduleRoot: scheduleRoot ,\n setRefreshHandler: setRefreshHandler ,\n // Enables DevTools to append owner stacks to error messages in DEV mode.\n getCurrentFiber: getCurrentFiberForDevTools \n });\n}\n\nfunction ReactDOMRoot(container, options) {\n this._internalRoot = createRootImpl(container, ConcurrentRoot, options);\n}\n\nfunction ReactDOMBlockingRoot(container, tag, options) {\n this._internalRoot = createRootImpl(container, tag, options);\n}\n\nReactDOMRoot.prototype.render = ReactDOMBlockingRoot.prototype.render = function (children) {\n var root = this._internalRoot;\n\n {\n if (typeof arguments[1] === 'function') {\n error('render(...): does not support the second callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n\n var container = root.containerInfo;\n\n if (container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(root.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of the ' + 'root container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + \"root.unmount() to empty a root's container.\");\n }\n }\n }\n }\n\n updateContainer(children, root, null, null);\n};\n\nReactDOMRoot.prototype.unmount = ReactDOMBlockingRoot.prototype.unmount = function () {\n {\n if (typeof arguments[0] === 'function') {\n error('unmount(...): does not support a callback argument. ' + 'To execute a side effect after rendering, declare it in a component body with useEffect().');\n }\n }\n\n var root = this._internalRoot;\n var container = root.containerInfo;\n updateContainer(null, root, null, function () {\n unmarkContainerAsRoot(container);\n });\n};\n\nfunction createRootImpl(container, tag, options) {\n // Tag is either LegacyRoot or Concurrent Root\n var hydrate = options != null && options.hydrate === true;\n var hydrationCallbacks = options != null && options.hydrationOptions || null;\n var mutableSources = options != null && options.hydrationOptions != null && options.hydrationOptions.mutableSources || null;\n var root = createContainer(container, tag, hydrate);\n markContainerAsRoot(root.current, container);\n var containerNodeType = container.nodeType;\n\n {\n var rootContainerElement = container.nodeType === COMMENT_NODE ? container.parentNode : container;\n listenToAllSupportedEvents(rootContainerElement);\n }\n\n if (mutableSources) {\n for (var i = 0; i < mutableSources.length; i++) {\n var mutableSource = mutableSources[i];\n registerMutableSourceForHydration(root, mutableSource);\n }\n }\n\n return root;\n}\nfunction createLegacyRoot(container, options) {\n return new ReactDOMBlockingRoot(container, LegacyRoot, options);\n}\nfunction isValidContainer(node) {\n return !!(node && (node.nodeType === ELEMENT_NODE || node.nodeType === DOCUMENT_NODE || node.nodeType === DOCUMENT_FRAGMENT_NODE || node.nodeType === COMMENT_NODE && node.nodeValue === ' react-mount-point-unstable '));\n}\n\nvar ReactCurrentOwner$3 = ReactSharedInternals.ReactCurrentOwner;\nvar topLevelUpdateWarnings;\nvar warnedAboutHydrateAPI = false;\n\n{\n topLevelUpdateWarnings = function (container) {\n if (container._reactRootContainer && container.nodeType !== COMMENT_NODE) {\n var hostInstance = findHostInstanceWithNoPortals(container._reactRootContainer._internalRoot.current);\n\n if (hostInstance) {\n if (hostInstance.parentNode !== container) {\n error('render(...): It looks like the React-rendered content of this ' + 'container was removed without using React. This is not ' + 'supported and will cause errors. Instead, call ' + 'ReactDOM.unmountComponentAtNode to empty a container.');\n }\n }\n }\n\n var isRootRenderedBySomeReact = !!container._reactRootContainer;\n var rootEl = getReactRootElementInContainer(container);\n var hasNonRootReactChild = !!(rootEl && getInstanceFromNode(rootEl));\n\n if (hasNonRootReactChild && !isRootRenderedBySomeReact) {\n error('render(...): Replacing React-rendered children with a new root ' + 'component. If you intended to update the children of this node, ' + 'you should instead have the existing children update their state ' + 'and render the new components instead of calling ReactDOM.render.');\n }\n\n if (container.nodeType === ELEMENT_NODE && container.tagName && container.tagName.toUpperCase() === 'BODY') {\n error('render(): Rendering components directly into document.body is ' + 'discouraged, since its children are often manipulated by third-party ' + 'scripts and browser extensions. This may lead to subtle ' + 'reconciliation issues. Try rendering into a container element created ' + 'for your app.');\n }\n };\n}\n\nfunction getReactRootElementInContainer(container) {\n if (!container) {\n return null;\n }\n\n if (container.nodeType === DOCUMENT_NODE) {\n return container.documentElement;\n } else {\n return container.firstChild;\n }\n}\n\nfunction shouldHydrateDueToLegacyHeuristic(container) {\n var rootElement = getReactRootElementInContainer(container);\n return !!(rootElement && rootElement.nodeType === ELEMENT_NODE && rootElement.hasAttribute(ROOT_ATTRIBUTE_NAME));\n}\n\nfunction legacyCreateRootFromDOMContainer(container, forceHydrate) {\n var shouldHydrate = forceHydrate || shouldHydrateDueToLegacyHeuristic(container); // First clear any existing content.\n\n if (!shouldHydrate) {\n var warned = false;\n var rootSibling;\n\n while (rootSibling = container.lastChild) {\n {\n if (!warned && rootSibling.nodeType === ELEMENT_NODE && rootSibling.hasAttribute(ROOT_ATTRIBUTE_NAME)) {\n warned = true;\n\n error('render(): Target node has markup rendered by React, but there ' + 'are unrelated nodes as well. This is most commonly caused by ' + 'white-space inserted around server-rendered markup.');\n }\n }\n\n container.removeChild(rootSibling);\n }\n }\n\n {\n if (shouldHydrate && !forceHydrate && !warnedAboutHydrateAPI) {\n warnedAboutHydrateAPI = true;\n\n warn('render(): Calling ReactDOM.render() to hydrate server-rendered markup ' + 'will stop working in React v18. Replace the ReactDOM.render() call ' + 'with ReactDOM.hydrate() if you want React to attach to the server HTML.');\n }\n }\n\n return createLegacyRoot(container, shouldHydrate ? {\n hydrate: true\n } : undefined);\n}\n\nfunction warnOnInvalidCallback$1(callback, callerName) {\n {\n if (callback !== null && typeof callback !== 'function') {\n error('%s(...): Expected the last optional `callback` argument to be a ' + 'function. Instead received: %s.', callerName, callback);\n }\n }\n}\n\nfunction legacyRenderSubtreeIntoContainer(parentComponent, children, container, forceHydrate, callback) {\n {\n topLevelUpdateWarnings(container);\n warnOnInvalidCallback$1(callback === undefined ? null : callback, 'render');\n } // TODO: Without `any` type, Flow says \"Property cannot be accessed on any\n // member of intersection type.\" Whyyyyyy.\n\n\n var root = container._reactRootContainer;\n var fiberRoot;\n\n if (!root) {\n // Initial mount\n root = container._reactRootContainer = legacyCreateRootFromDOMContainer(container, forceHydrate);\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n originalCallback.call(instance);\n };\n } // Initial mount should not be batched.\n\n\n unbatchedUpdates(function () {\n updateContainer(children, fiberRoot, parentComponent, callback);\n });\n } else {\n fiberRoot = root._internalRoot;\n\n if (typeof callback === 'function') {\n var _originalCallback = callback;\n\n callback = function () {\n var instance = getPublicRootInstance(fiberRoot);\n\n _originalCallback.call(instance);\n };\n } // Update\n\n\n updateContainer(children, fiberRoot, parentComponent, callback);\n }\n\n return getPublicRootInstance(fiberRoot);\n}\n\nfunction findDOMNode(componentOrElement) {\n {\n var owner = ReactCurrentOwner$3.current;\n\n if (owner !== null && owner.stateNode !== null) {\n var warnedAboutRefsInRender = owner.stateNode._warnedAboutRefsInRender;\n\n if (!warnedAboutRefsInRender) {\n error('%s is accessing findDOMNode inside its render(). ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(owner.type) || 'A component');\n }\n\n owner.stateNode._warnedAboutRefsInRender = true;\n }\n }\n\n if (componentOrElement == null) {\n return null;\n }\n\n if (componentOrElement.nodeType === ELEMENT_NODE) {\n return componentOrElement;\n }\n\n {\n return findHostInstanceWithWarning(componentOrElement, 'findDOMNode');\n }\n}\nfunction hydrate(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.hydrate() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call createRoot(container, {hydrate: true}).render(element)?');\n }\n } // TODO: throw or warn if we couldn't hydrate?\n\n\n return legacyRenderSubtreeIntoContainer(null, element, container, true, callback);\n}\nfunction render(element, container, callback) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.render() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. ' + 'Did you mean to call root.render(element)?');\n }\n }\n\n return legacyRenderSubtreeIntoContainer(null, element, container, false, callback);\n}\nfunction unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n if (!isValidContainer(containerNode)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n }\n\n if (!(parentComponent != null && has(parentComponent))) {\n {\n throw Error( \"parentComponent must be a valid React Component\" );\n }\n }\n\n return legacyRenderSubtreeIntoContainer(parentComponent, element, containerNode, false, callback);\n}\nfunction unmountComponentAtNode(container) {\n if (!isValidContainer(container)) {\n {\n throw Error( \"unmountComponentAtNode(...): Target container is not a DOM element.\" );\n }\n }\n\n {\n var isModernRoot = isContainerMarkedAsRoot(container) && container._reactRootContainer === undefined;\n\n if (isModernRoot) {\n error('You are calling ReactDOM.unmountComponentAtNode() on a container that was previously ' + 'passed to ReactDOM.createRoot(). This is not supported. Did you mean to call root.unmount()?');\n }\n }\n\n if (container._reactRootContainer) {\n {\n var rootEl = getReactRootElementInContainer(container);\n var renderedByDifferentReact = rootEl && !getInstanceFromNode(rootEl);\n\n if (renderedByDifferentReact) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by another copy of React.');\n }\n } // Unmount should not be batched.\n\n\n unbatchedUpdates(function () {\n legacyRenderSubtreeIntoContainer(null, null, container, false, function () {\n // $FlowFixMe This should probably use `delete container._reactRootContainer`\n container._reactRootContainer = null;\n unmarkContainerAsRoot(container);\n });\n }); // If you call unmountComponentAtNode twice in quick succession, you'll\n // get `true` twice. That's probably fine?\n\n return true;\n } else {\n {\n var _rootEl = getReactRootElementInContainer(container);\n\n var hasNonRootReactChild = !!(_rootEl && getInstanceFromNode(_rootEl)); // Check if the container itself is a React root node.\n\n var isContainerReactRoot = container.nodeType === ELEMENT_NODE && isValidContainer(container.parentNode) && !!container.parentNode._reactRootContainer;\n\n if (hasNonRootReactChild) {\n error(\"unmountComponentAtNode(): The node you're attempting to unmount \" + 'was rendered by React and is not a top-level container. %s', isContainerReactRoot ? 'You may have accidentally passed in a React root node instead ' + 'of its container.' : 'Instead, have the parent component update its state and ' + 'rerender in order to remove this component.');\n }\n }\n\n return false;\n }\n}\n\nsetAttemptUserBlockingHydration(attemptUserBlockingHydration$1);\nsetAttemptContinuousHydration(attemptContinuousHydration$1);\nsetAttemptHydrationAtCurrentPriority(attemptHydrationAtCurrentPriority$1);\nsetAttemptHydrationAtPriority(runWithPriority$2);\nvar didWarnAboutUnstableCreatePortal = false;\n\n{\n if (typeof Map !== 'function' || // $FlowIssue Flow incorrectly thinks Map has no prototype\n Map.prototype == null || typeof Map.prototype.forEach !== 'function' || typeof Set !== 'function' || // $FlowIssue Flow incorrectly thinks Set has no prototype\n Set.prototype == null || typeof Set.prototype.clear !== 'function' || typeof Set.prototype.forEach !== 'function') {\n error('React depends on Map and Set built-in types. Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n}\n\nsetRestoreImplementation(restoreControlledState$3);\nsetBatchingImplementation(batchedUpdates$1, discreteUpdates$1, flushDiscreteUpdates, batchedEventUpdates$1);\n\nfunction createPortal$1(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n if (!isValidContainer(container)) {\n {\n throw Error( \"Target container is not a DOM element.\" );\n }\n } // TODO: pass ReactDOM portal implementation as third argument\n // $FlowFixMe The Flow type is opaque but there's no way to actually create it.\n\n\n return createPortal(children, container, null, key);\n}\n\nfunction renderSubtreeIntoContainer(parentComponent, element, containerNode, callback) {\n\n return unstable_renderSubtreeIntoContainer(parentComponent, element, containerNode, callback);\n}\n\nfunction unstable_createPortal(children, container) {\n var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n {\n if (!didWarnAboutUnstableCreatePortal) {\n didWarnAboutUnstableCreatePortal = true;\n\n warn('The ReactDOM.unstable_createPortal() alias has been deprecated, ' + 'and will be removed in React 18+. Update your code to use ' + 'ReactDOM.createPortal() instead. It has the exact same API, ' + 'but without the \"unstable_\" prefix.');\n }\n }\n\n return createPortal$1(children, container, key);\n}\n\nvar Internals = {\n // Keep in sync with ReactTestUtils.js, and ReactTestUtilsAct.js.\n // This is an array for better minification.\n Events: [getInstanceFromNode, getNodeFromInstance, getFiberCurrentPropsFromNode, enqueueStateRestore, restoreStateIfNeeded, flushPassiveEffects, // TODO: This is related to `act`, not events. Move to separate key?\n IsThisRendererActing]\n};\nvar foundDevTools = injectIntoDevTools({\n findFiberByHostInstance: getClosestInstanceFromNode,\n bundleType: 1 ,\n version: ReactVersion,\n rendererPackageName: 'react-dom'\n});\n\n{\n if (!foundDevTools && canUseDOM && window.top === window.self) {\n // If we're in Chrome or Firefox, provide a download link if not installed.\n if (navigator.userAgent.indexOf('Chrome') > -1 && navigator.userAgent.indexOf('Edge') === -1 || navigator.userAgent.indexOf('Firefox') > -1) {\n var protocol = window.location.protocol; // Don't warn in exotic cases like chrome-extension://.\n\n if (/^(https?|file):$/.test(protocol)) {\n // eslint-disable-next-line react-internal/no-production-logging\n console.info('%cDownload the React DevTools ' + 'for a better development experience: ' + 'https://reactjs.org/link/react-devtools' + (protocol === 'file:' ? '\\nYou might need to use a local HTTP server (instead of file://): ' + 'https://reactjs.org/link/react-devtools-faq' : ''), 'font-weight:bold');\n }\n }\n }\n}\n\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = Internals;\nexports.createPortal = createPortal$1;\nexports.findDOMNode = findDOMNode;\nexports.flushSync = flushSync;\nexports.hydrate = hydrate;\nexports.render = render;\nexports.unmountComponentAtNode = unmountComponentAtNode;\nexports.unstable_batchedUpdates = batchedUpdates$1;\nexports.unstable_createPortal = unstable_createPortal;\nexports.unstable_renderSubtreeIntoContainer = renderSubtreeIntoContainer;\nexports.version = ReactVersion;\n })();\n}\n","/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}if(!aa)throw Error(y(227));var ba=new Set,ca={};function da(a,b){ea(a,b);ea(a+\"Capture\",b)}\nfunction ea(a,b){ca[a]=b;for(a=0;a<b.length;a++)ba.add(b[a])}\nvar fa=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ha=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,ia=Object.prototype.hasOwnProperty,\nja={},ka={};function la(a){if(ia.call(ka,a))return!0;if(ia.call(ja,a))return!1;if(ha.test(a))return ka[a]=!0;ja[a]=!0;return!1}function ma(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction na(a,b,c,d){if(null===b||\"undefined\"===typeof b||ma(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1]?!1:!0;f||(na(b,c,e,d)&&(c=null),d||null===e?la(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c))))}\nvar ra=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,sa=60103,ta=60106,ua=60107,wa=60108,xa=60114,ya=60109,za=60110,Aa=60112,Ba=60113,Ca=60120,Da=60115,Ea=60116,Fa=60121,Ga=60128,Ha=60129,Ia=60130,Ja=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var E=Symbol.for;sa=E(\"react.element\");ta=E(\"react.portal\");ua=E(\"react.fragment\");wa=E(\"react.strict_mode\");xa=E(\"react.profiler\");ya=E(\"react.provider\");za=E(\"react.context\");Aa=E(\"react.forward_ref\");Ba=E(\"react.suspense\");Ca=E(\"react.suspense_list\");Da=E(\"react.memo\");Ea=E(\"react.lazy\");Fa=E(\"react.block\");E(\"react.scope\");Ga=E(\"react.opaque.id\");Ha=E(\"react.debug_trace_mode\");Ia=E(\"react.offscreen\");Ja=E(\"react.legacy_hidden\")}\nvar Ka=\"function\"===typeof Symbol&&Symbol.iterator;function La(a){if(null===a||\"object\"!==typeof a)return null;a=Ka&&a[Ka]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var Ma;function Na(a){if(void 0===Ma)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);Ma=b&&b[1]||\"\"}return\"\\n\"+Ma+a}var Oa=!1;\nfunction Pa(a,b){if(!a||Oa)return\"\";Oa=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(k){var d=k}Reflect.construct(a,[],b)}else{try{b.call()}catch(k){d=k}a.call(b.prototype)}else{try{throw Error();}catch(k){d=k}a()}}catch(k){if(k&&d&&\"string\"===typeof k.stack){for(var e=k.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(y(91));return m({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(y(92));if(Array.isArray(c)){if(!(1>=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(a,b,c,d,e){return a(b,c,d,e)}function Ib(){}var Jb=Gb,Kb=!1,Lb=!1;function Mb(){if(null!==zb||null!==Ab)Ib(),Fb()}\nfunction Nb(a,b,c){if(Lb)return a(b,c);Lb=!0;try{return Jb(a,b,c)}finally{Lb=!1,Mb()}}\nfunction Ob(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(y(231,b,typeof c));return c}var Pb=!1;if(fa)try{var Qb={};Object.defineProperty(Qb,\"passive\",{get:function(){Pb=!0}});window.addEventListener(\"test\",Qb,Qb);window.removeEventListener(\"test\",Qb,Qb)}catch(a){Pb=!1}function Rb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(n){this.onError(n)}}var Sb=!1,Tb=null,Ub=!1,Vb=null,Wb={onError:function(a){Sb=!0;Tb=a}};function Xb(a,b,c,d,e,f,g,h,k){Sb=!1;Tb=null;Rb.apply(Wb,arguments)}\nfunction Yb(a,b,c,d,e,f,g,h,k){Xb.apply(this,arguments);if(Sb){if(Sb){var l=Tb;Sb=!1;Tb=null}else throw Error(y(198));Ub||(Ub=!0,Vb=l)}}function Zb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function $b(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function ac(a){if(Zb(a)!==a)throw Error(y(188));}\nfunction bc(a){var b=a.alternate;if(!b){b=Zb(a);if(null===b)throw Error(y(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return ac(e),a;if(f===d)return ac(e),b;f=f.sibling}throw Error(y(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(y(189));}}if(c.alternate!==d)throw Error(y(190));}if(3!==c.tag)throw Error(y(188));return c.stateNode.current===c?a:b}function cc(a){a=bc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction dc(a,b){for(var c=a.alternate;null!==b;){if(b===a||b===c)return!0;b=b.return}return!1}var ec,fc,gc,hc,ic=!1,jc=[],kc=null,lc=null,mc=null,nc=new Map,oc=new Map,pc=[],qc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction rc(a,b,c,d,e){return{blockedOn:a,domEventName:b,eventSystemFlags:c|16,nativeEvent:e,targetContainers:[d]}}function sc(a,b){switch(a){case \"focusin\":case \"focusout\":kc=null;break;case \"dragenter\":case \"dragleave\":lc=null;break;case \"mouseover\":case \"mouseout\":mc=null;break;case \"pointerover\":case \"pointerout\":nc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":oc.delete(b.pointerId)}}\nfunction tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a=rc(b,c,d,e,f),null!==b&&(b=Cb(b),null!==b&&fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction uc(a,b,c,d,e){switch(b){case \"focusin\":return kc=tc(kc,a,b,c,d,e),!0;case \"dragenter\":return lc=tc(lc,a,b,c,d,e),!0;case \"mouseover\":return mc=tc(mc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;nc.set(f,tc(nc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,oc.set(f,tc(oc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction vc(a){var b=wc(a.target);if(null!==b){var c=Zb(b);if(null!==c)if(b=c.tag,13===b){if(b=$b(c),null!==b){a.blockedOn=b;hc(a.lanePriority,function(){r.unstable_runWithPriority(a.priority,function(){gc(c)})});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c)return b=Cb(c),null!==b&&fc(b),a.blockedOn=c,!1;b.shift()}return!0}function zc(a,b,c){xc(a)&&c.delete(b)}\nfunction Ac(){for(ic=!1;0<jc.length;){var a=jc[0];if(null!==a.blockedOn){a=Cb(a.blockedOn);null!==a&&ec(a);break}for(var b=a.targetContainers;0<b.length;){var c=yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null!==c){a.blockedOn=c;break}b.shift()}null===a.blockedOn&&jc.shift()}null!==kc&&xc(kc)&&(kc=null);null!==lc&&xc(lc)&&(lc=null);null!==mc&&xc(mc)&&(mc=null);nc.forEach(zc);oc.forEach(zc)}\nfunction Bc(a,b){a.blockedOn===b&&(a.blockedOn=null,ic||(ic=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,Ac)))}\nfunction Cc(a){function b(b){return Bc(b,a)}if(0<jc.length){Bc(jc[0],a);for(var c=1;c<jc.length;c++){var d=jc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==kc&&Bc(kc,a);null!==lc&&Bc(lc,a);null!==mc&&Bc(mc,a);nc.forEach(b);oc.forEach(b);for(c=0;c<pc.length;c++)d=pc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<pc.length&&(c=pc[0],null===c.blockedOn);)vc(c),null===c.blockedOn&&pc.shift()}\nfunction Dc(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Ec={animationend:Dc(\"Animation\",\"AnimationEnd\"),animationiteration:Dc(\"Animation\",\"AnimationIteration\"),animationstart:Dc(\"Animation\",\"AnimationStart\"),transitionend:Dc(\"Transition\",\"TransitionEnd\")},Fc={},Gc={};\nfa&&(Gc=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Ec.animationend.animation,delete Ec.animationiteration.animation,delete Ec.animationstart.animation),\"TransitionEvent\"in window||delete Ec.transitionend.transition);function Hc(a){if(Fc[a])return Fc[a];if(!Ec[a])return a;var b=Ec[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Gc)return Fc[a]=b[c];return a}\nvar Ic=Hc(\"animationend\"),Jc=Hc(\"animationiteration\"),Kc=Hc(\"animationstart\"),Lc=Hc(\"transitionend\"),Mc=new Map,Nc=new Map,Oc=[\"abort\",\"abort\",Ic,\"animationEnd\",Jc,\"animationIteration\",Kc,\"animationStart\",\"canplay\",\"canPlay\",\"canplaythrough\",\"canPlayThrough\",\"durationchange\",\"durationChange\",\"emptied\",\"emptied\",\"encrypted\",\"encrypted\",\"ended\",\"ended\",\"error\",\"error\",\"gotpointercapture\",\"gotPointerCapture\",\"load\",\"load\",\"loadeddata\",\"loadedData\",\"loadedmetadata\",\"loadedMetadata\",\"loadstart\",\"loadStart\",\n\"lostpointercapture\",\"lostPointerCapture\",\"playing\",\"playing\",\"progress\",\"progress\",\"seeking\",\"seeking\",\"stalled\",\"stalled\",\"suspend\",\"suspend\",\"timeupdate\",\"timeUpdate\",Lc,\"transitionEnd\",\"waiting\",\"waiting\"];function Pc(a,b){for(var c=0;c<a.length;c+=2){var d=a[c],e=a[c+1];e=\"on\"+(e[0].toUpperCase()+e.slice(1));Nc.set(d,b);Mc.set(d,e);da(e,[d])}}var Qc=r.unstable_now;Qc();var F=8;\nfunction Rc(a){if(0!==(1&a))return F=15,1;if(0!==(2&a))return F=14,2;if(0!==(4&a))return F=13,4;var b=24&a;if(0!==b)return F=12,b;if(0!==(a&32))return F=11,32;b=192&a;if(0!==b)return F=10,b;if(0!==(a&256))return F=9,256;b=3584&a;if(0!==b)return F=8,b;if(0!==(a&4096))return F=7,4096;b=4186112&a;if(0!==b)return F=6,b;b=62914560&a;if(0!==b)return F=5,b;if(a&67108864)return F=4,67108864;if(0!==(a&134217728))return F=3,134217728;b=805306368&a;if(0!==b)return F=2,b;if(0!==(1073741824&a))return F=1,1073741824;\nF=8;return a}function Sc(a){switch(a){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function Tc(a){switch(a){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(y(358,a));}}\nfunction Uc(a,b){var c=a.pendingLanes;if(0===c)return F=0;var d=0,e=0,f=a.expiredLanes,g=a.suspendedLanes,h=a.pingedLanes;if(0!==f)d=f,e=F=15;else if(f=c&134217727,0!==f){var k=f&~g;0!==k?(d=Rc(k),e=F):(h&=f,0!==h&&(d=Rc(h),e=F))}else f=c&~g,0!==f?(d=Rc(f),e=F):0!==h&&(d=Rc(h),e=F);if(0===d)return 0;d=31-Vc(d);d=c&((0>d?0:1<<d)<<1)-1;if(0!==b&&b!==d&&0===(b&g)){Rc(b);if(e<=F)return b;F=e}b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-Vc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction Wc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function Xc(a,b){switch(a){case 15:return 1;case 14:return 2;case 12:return a=Yc(24&~b),0===a?Xc(10,b):a;case 10:return a=Yc(192&~b),0===a?Xc(8,b):a;case 8:return a=Yc(3584&~b),0===a&&(a=Yc(4186112&~b),0===a&&(a=512)),a;case 2:return b=Yc(805306368&~b),0===b&&(b=268435456),b}throw Error(y(358,a));}function Yc(a){return a&-a}function Zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0<jc.length&&-1<qc.indexOf(a))a=rc(null,a,b,c,d),jc.push(a);else{var f=yc(a,b,c,d);if(null===f)e&&sc(a,d);else{if(e){if(-1<qc.indexOf(a)){a=rc(f,a,b,c,d);jc.push(a);return}if(uc(f,a,b,c,d))return;sc(a,d)}jd(a,b,d,null,c)}}}}\nfunction yc(a,b,c,d){var e=xb(d);e=wc(e);if(null!==e){var f=Zb(e);if(null===f)e=null;else{var g=f.tag;if(13===g){e=$b(f);if(null!==e)return e;e=null}else if(3===g){if(f.stateNode.hydrate)return 3===f.tag?f.stateNode.containerInfo:null;e=null}else f!==e&&(e=null)}}jd(a,b,d,e,c);return null}var kd=null,ld=null,md=null;\nfunction nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}function od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}m(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=m({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=m({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=m({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=m({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=m({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=m({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=m({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=m({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=m({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=m({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=m({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=m({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=fa&&\"CompositionEvent\"in window,be=null;fa&&\"documentMode\"in document&&(be=document.documentMode);var ce=fa&&\"TextEvent\"in window&&!be,de=fa&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(fa){var xe;if(fa){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));a=re;if(Kb)a(b);else{Kb=!0;try{Gb(a,b)}finally{Kb=!1,Mb()}}}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge,Ie=Object.prototype.hasOwnProperty;\nfunction Je(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++)if(!Ie.call(b,c[d])||!He(a[c[d]],b[c[d]]))return!1;return!0}function Ke(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Le(a,b){var c=Ke(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nPc(\"cancel cancel click click close close contextmenu contextMenu copy copy cut cut auxclick auxClick dblclick doubleClick dragend dragEnd dragstart dragStart drop drop focusin focus focusout blur input input invalid invalid keydown keyDown keypress keyPress keyup keyUp mousedown mouseDown mouseup mouseUp paste paste pause pause play play pointercancel pointerCancel pointerdown pointerDown pointerup pointerUp ratechange rateChange reset reset seeked seeked submit submit touchcancel touchCancel touchend touchEnd touchstart touchStart volumechange volumeChange\".split(\" \"),\n0);Pc(\"drag drag dragenter dragEnter dragexit dragExit dragleave dragLeave dragover dragOver mousemove mouseMove mouseout mouseOut mouseover mouseOver pointermove pointerMove pointerout pointerOut pointerover pointerOver scroll scroll toggle toggle touchmove touchMove wheel wheel\".split(\" \"),1);Pc(Oc,2);for(var Ve=\"change selectionchange textInput compositionstart compositionend compositionupdate\".split(\" \"),We=0;We<Ve.length;We++)Nc.set(Ve[We],0);ea(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);\nea(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ea(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);ea(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);da(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));da(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));da(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);da(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));\nda(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));da(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var Xe=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),Ye=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(Xe));\nfunction Ze(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Yb(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;Ze(e,h,l);f=k}}}if(Ub)throw a=Vb,Ub=!1,Vb=null,a;}\nfunction G(a,b){var c=$e(b),d=a+\"__bubble\";c.has(d)||(af(b,a,2,!1),c.add(d))}var bf=\"_reactListening\"+Math.random().toString(36).slice(2);function cf(a){a[bf]||(a[bf]=!0,ba.forEach(function(b){Ye.has(b)||df(b,!1,a,null);df(b,!0,a,null)}))}\nfunction df(a,b,c,d){var e=4<arguments.length&&void 0!==arguments[4]?arguments[4]:0,f=c;\"selectionchange\"===a&&9!==c.nodeType&&(f=c.ownerDocument);if(null!==d&&!b&&Ye.has(a)){if(\"scroll\"!==a)return;e|=2;f=d}var g=$e(f),h=a+\"__\"+(b?\"capture\":\"bubble\");g.has(h)||(b&&(e|=4),af(f,a,e,b),g.add(h))}\nfunction af(a,b,c,d){var e=Nc.get(b);switch(void 0===e?2:e){case 0:e=gd;break;case 1:e=id;break;default:e=hd}c=e.bind(null,b,c,a);e=void 0;!Pb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction jd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Nb(function(){var d=f,e=xb(c),g=[];\na:{var h=Mc.get(a);if(void 0!==h){var k=td,x=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":x=\"focus\";k=Fd;break;case \"focusout\":x=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case Ic:case Jc:case Kc:k=Hd;break;case Lc:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var w=0!==(b&4),z=!w&&\"scroll\"===a,u=w?null!==h?h+\"Capture\":null:h;w=[];for(var t=d,q;null!==\nt;){q=t;var v=q.stateNode;5===q.tag&&null!==v&&(q=v,null!==u&&(v=Ob(t,u),null!=v&&w.push(ef(t,v,q))));if(z)break;t=t.return}0<w.length&&(h=new k(h,x,null,c,e),g.push({event:h,listeners:w}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&0===(b&16)&&(x=c.relatedTarget||c.fromElement)&&(wc(x)||x[ff]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(x=c.relatedTarget||c.toElement,k=d,x=x?wc(x):null,null!==\nx&&(z=Zb(x),x!==z||5!==x.tag&&6!==x.tag))x=null}else k=null,x=d;if(k!==x){w=Bd;v=\"onMouseLeave\";u=\"onMouseEnter\";t=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)w=Td,v=\"onPointerLeave\",u=\"onPointerEnter\",t=\"pointer\";z=null==k?h:ue(k);q=null==x?h:ue(x);h=new w(v,t+\"leave\",k,c,e);h.target=z;h.relatedTarget=q;v=null;wc(e)===d&&(w=new w(u,t+\"enter\",x,c,e),w.target=q,w.relatedTarget=z,v=w);z=v;if(k&&x)b:{w=k;u=x;t=0;for(q=w;q;q=gf(q))t++;q=0;for(v=u;v;v=gf(v))q++;for(;0<t-q;)w=gf(w),t--;for(;0<q-t;)u=\ngf(u),q--;for(;t--;){if(w===u||null!==u&&w===u.alternate)break b;w=gf(w);u=gf(u)}w=null}else w=null;null!==k&&hf(g,h,k,w,!1);null!==x&&null!==z&&hf(g,z,x,w,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var J=ve;else if(me(h))if(we)J=Fe;else{J=De;var K=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(J=Ee);if(J&&(J=J(a,d))){ne(g,J,c,e);break a}K&&K(a,h,d);\"focusout\"===a&&(K=h._wrapperState)&&\nK.controlled&&\"number\"===h.type&&bb(h,\"number\",h.value)}K=d?ue(d):window;switch(a){case \"focusin\":if(me(K)||\"true\"===K.contentEditable)Qe=K,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var Q;if(ae)b:{switch(a){case \"compositionstart\":var L=\"onCompositionStart\";break b;case \"compositionend\":L=\"onCompositionEnd\";break b;\ncase \"compositionupdate\":L=\"onCompositionUpdate\";break b}L=void 0}else ie?ge(a,c)&&(L=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(L=\"onCompositionStart\");L&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==L?\"onCompositionEnd\"===L&&ie&&(Q=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),K=oe(d,L),0<K.length&&(L=new Ld(L,a,null,c,e),g.push({event:L,listeners:K}),Q?L.data=Q:(Q=he(c),null!==Q&&(L.data=Q))));if(Q=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),0<d.length&&(e=new Ld(\"onBeforeInput\",\n\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=Q)}se(g,b)})}function ef(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Ob(a,c),null!=f&&d.unshift(ef(a,f,e)),f=Ob(a,b),null!=f&&d.push(ef(a,f,e)));a=a.return}return d}function gf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction hf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Ob(c,f),null!=k&&g.unshift(ef(c,k,h))):e||(k=Ob(c,f),null!=k&&g.push(ef(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}function jf(){}var kf=null,lf=null;function mf(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction nf(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var of=\"function\"===typeof setTimeout?setTimeout:void 0,pf=\"function\"===typeof clearTimeout?clearTimeout:void 0;function qf(a){1===a.nodeType?a.textContent=\"\":9===a.nodeType&&(a=a.body,null!=a&&(a.textContent=\"\"))}\nfunction rf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}function sf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var tf=0;function uf(a){return{$$typeof:Ga,toString:a,valueOf:a}}var vf=Math.random().toString(36).slice(2),wf=\"__reactFiber$\"+vf,xf=\"__reactProps$\"+vf,ff=\"__reactContainer$\"+vf,yf=\"__reactEvents$\"+vf;\nfunction wc(a){var b=a[wf];if(b)return b;for(var c=a.parentNode;c;){if(b=c[ff]||c[wf]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=sf(a);null!==a;){if(c=a[wf])return c;a=sf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[wf]||a[ff];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(y(33));}function Db(a){return a[xf]||null}\nfunction $e(a){var b=a[yf];void 0===b&&(b=a[yf]=new Set);return b}var zf=[],Af=-1;function Bf(a){return{current:a}}function H(a){0>Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;a<b.length;a++){var c=b[a];do c=c(!0);while(null!==c)}});ag=null}catch(c){throw null!==ag&&(ag=ag.slice(a+1)),Of(Uf,ig),c;}finally{cg=!1}}}var kg=ra.ReactCurrentBatchConfig;function lg(a,b){if(a&&a.defaultProps){b=m({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var mg=Bf(null),ng=null,og=null,pg=null;function qg(){pg=og=ng=null}\nfunction rg(a){var b=mg.current;H(mg);a.type._context._currentValue=b}function sg(a,b){for(;null!==a;){var c=a.alternate;if((a.childLanes&b)===b)if(null===c||(c.childLanes&b)===b)break;else c.childLanes|=b;else a.childLanes|=b,null!==c&&(c.childLanes|=b);a=a.return}}function tg(a,b){ng=a;pg=og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(ug=!0),a.firstContext=null)}\nfunction vg(a,b){if(pg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)pg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===og){if(null===ng)throw Error(y(308));og=b;ng.dependencies={lanes:0,firstContext:b,responders:null}}else og=og.next=b}return a._currentValue}var wg=!1;function xg(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null},effects:null}}\nfunction yg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function zg(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}function Ag(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction Bg(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction Cg(a,b,c,d){var e=a.updateQueue;wg=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var n=a.alternate;if(null!==n){n=n.updateQueue;var A=n.lastBaseUpdate;A!==g&&(null===A?n.firstBaseUpdate=l:A.next=l,n.lastBaseUpdate=k)}}if(null!==f){A=e.baseState;g=0;n=l=k=null;do{h=f.lane;var p=f.eventTime;if((d&h)===h){null!==n&&(n=n.next={eventTime:p,lane:0,tag:f.tag,payload:f.payload,callback:f.callback,\nnext:null});a:{var C=a,x=f;h=b;p=c;switch(x.tag){case 1:C=x.payload;if(\"function\"===typeof C){A=C.call(p,A,h);break a}A=C;break a;case 3:C.flags=C.flags&-4097|64;case 0:C=x.payload;h=\"function\"===typeof C?C.call(p,A,h):C;if(null===h||void 0===h)break a;A=m({},A,h);break a;case 2:wg=!0}}null!==f.callback&&(a.flags|=32,h=e.effects,null===h?e.effects=[f]:h.push(f))}else p={eventTime:p,lane:h,tag:f.tag,payload:f.payload,callback:f.callback,next:null},null===n?(l=n=p,k=A):n=n.next=p,g|=h;f=f.next;if(null===\nf)if(h=e.shared.pending,null===h)break;else f=h.next,h.next=null,e.lastBaseUpdate=h,e.shared.pending=null}while(1);null===n&&(k=A);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=n;Dg|=g;a.lanes=g;a.memoizedState=A}}function Eg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(y(191,e));e.call(d)}}}var Fg=(new aa.Component).refs;\nfunction Gg(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:m({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Kg={isMounted:function(a){return(a=a._reactInternals)?Zb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=Hg(),e=Ig(a),f=zg(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);Ag(a,f);Jg(a,e,d)},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=Hg(),d=Ig(a),e=zg(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=\nb);Ag(a,e);Jg(a,d,c)}};function Lg(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Je(c,d)||!Je(e,f):!0}\nfunction Mg(a,b,c){var d=!1,e=Cf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=vg(f):(e=Ff(b)?Df:M.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Ef(a,e):Cf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Kg;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Ng(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Kg.enqueueReplaceState(b,b.state,null)}\nfunction Og(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=Fg;xg(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=vg(f):(f=Ff(b)?Df:M.current,e.context=Ef(a,f));Cg(a,c,e,d);e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Gg(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||\n(b=e.state,\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Kg.enqueueReplaceState(e,e.state,null),Cg(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4)}var Pg=Array.isArray;\nfunction Qg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(y(309));var d=c.stateNode}if(!d)throw Error(y(147,a));var e=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===e)return b.ref;b=function(a){var b=d.refs;b===Fg&&(b=d.refs={});null===a?delete b[e]:b[e]=a};b._stringRef=e;return b}if(\"string\"!==typeof a)throw Error(y(284));if(!c._owner)throw Error(y(290,a));}return a}\nfunction Rg(a,b){if(\"textarea\"!==a.type)throw Error(y(31,\"[object Object]\"===Object.prototype.toString.call(b)?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":b));}\nfunction Sg(a){function b(b,c){if(a){var d=b.lastEffect;null!==d?(d.nextEffect=c,b.lastEffect=c):b.firstEffect=b.lastEffect=c;c.nextEffect=null;c.flags=8}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Tg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags=2,\nc):d;b.flags=2;return c}function g(b){a&&null===b.alternate&&(b.flags=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Ug(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){if(null!==b&&b.elementType===c.type)return d=e(b,c.props),d.ref=Qg(a,b,c),d.return=a,d;d=Vg(c.type,c.key,c.props,null,a.mode,d);d.ref=Qg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||b.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=\nWg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function n(a,b,c,d,f){if(null===b||7!==b.tag)return b=Xg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function A(a,b,c){if(\"string\"===typeof b||\"number\"===typeof b)return b=Ug(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case sa:return c=Vg(b.type,b.key,b.props,null,a.mode,c),c.ref=Qg(a,null,b),c.return=a,c;case ta:return b=Wg(b,a.mode,c),b.return=a,b}if(Pg(b)||La(b))return b=Xg(b,\na.mode,c,null),b.return=a,b;Rg(a,b)}return null}function p(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case sa:return c.key===e?c.type===ua?n(a,b,c.props.children,d,e):k(a,b,c,d):null;case ta:return c.key===e?l(a,b,c,d):null}if(Pg(c)||La(c))return null!==e?null:n(a,b,c,d,null);Rg(a,c)}return null}function C(a,b,c,d,e){if(\"string\"===typeof d||\"number\"===typeof d)return a=a.get(c)||\nnull,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case sa:return a=a.get(null===d.key?c:d.key)||null,d.type===ua?n(b,a,d.props.children,e,d.key):k(b,a,d,e);case ta:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e)}if(Pg(d)||La(d))return a=a.get(c)||null,n(b,a,d,e,null);Rg(b,d)}return null}function x(e,g,h,k){for(var l=null,t=null,u=g,z=g=0,q=null;null!==u&&z<h.length;z++){u.index>z?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;z<h.length;z++)u=A(e,h[z],k),null!==u&&(g=f(u,g,z),null===t?l=u:t.sibling=u,t=u);return l}for(u=d(e,u);z<h.length;z++)q=C(u,e,z,h[z],k),null!==q&&(a&&null!==q.alternate&&u.delete(null===q.key?z:q.key),g=f(q,g,z),null===t?l=q:t.sibling=q,t=q);a&&u.forEach(function(a){return b(e,a)});return l}function w(e,g,h,k){var l=La(h);if(\"function\"!==typeof l)throw Error(y(150));h=l.call(h);if(null==\nh)throw Error(y(151));for(var t=l=null,u=g,z=g=0,q=null,n=h.next();null!==u&&!n.done;z++,n=h.next()){u.index>z?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;a<th.length;a++)th[a]._workInProgressVersionPrimary=null;th.length=0}var vh=ra.ReactCurrentDispatcher,wh=ra.ReactCurrentBatchConfig,xh=0,R=null,S=null,T=null,yh=!1,zh=!1;function Ah(){throw Error(y(321));}function Bh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Ch(a,b,c,d,e,f){xh=f;R=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;vh.current=null===a||null===a.memoizedState?Dh:Eh;a=c(d,e);if(zh){f=0;do{zh=!1;if(!(25>f))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0<h;){var k=31-Vc(h),v=1<<k;d[k]|=a;h&=~v}}},[c,b,d]);h.useEffect(function(){return d(b._source,function(){var a=p.getSnapshot,c=p.setSnapshot;try{c(a(b._source));var d=Ig(w);e.mutableReadLanes|=d&e.pendingLanes}catch(q){c(function(){throw q;})}})},[b,d]);He(C,c)&&He(x,b)&&He(A,d)||(a={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:n},a.dispatch=l=Oh.bind(null,R,a),k.queue=a,k.baseQueue=null,n=Mh(e,b,c),k.memoizedState=k.baseState=n);return n}\nfunction Ph(a,b,c){var d=Ih();return Nh(d,a,b,c)}function Qh(a){var b=Hh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:Jh,lastRenderedState:a};a=a.dispatch=Oh.bind(null,R,a);return[b.memoizedState,a]}\nfunction Rh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=R.updateQueue;null===b?(b={lastEffect:null},R.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function Sh(a){var b=Hh();a={current:a};return b.memoizedState=a}function Th(){return Ih().memoizedState}function Uh(a,b,c,d){var e=Hh();R.flags|=a;e.memoizedState=Rh(1|b,c,void 0,void 0===d?null:d)}\nfunction Vh(a,b,c,d){var e=Ih();d=void 0===d?null:d;var f=void 0;if(null!==S){var g=S.memoizedState;f=g.destroy;if(null!==d&&Bh(d,g.deps)){Rh(b,c,f,d);return}}R.flags|=a;e.memoizedState=Rh(1|b,c,f,d)}function Wh(a,b){return Uh(516,4,a,b)}function Xh(a,b){return Vh(516,4,a,b)}function Yh(a,b){return Vh(4,2,a,b)}function Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}\nfunction $h(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,2,Zh.bind(null,b,a),c)}function ai(){}function bi(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}function ci(a,b){var c=Ih();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Bh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}\nfunction di(a,b){var c=eg();gg(98>c?98:c,function(){a(!0)});gg(97<c?97:c,function(){var c=wh.transition;wh.transition=1;try{a(!1),b()}finally{wh.transition=c}})}\nfunction Oh(a,b,c){var d=Hg(),e=Ig(a),f={lane:e,action:c,eagerReducer:null,eagerState:null,next:null},g=b.pending;null===g?f.next=f:(f.next=g.next,g.next=f);b.pending=f;g=a.alternate;if(a===R||null!==g&&g===R)zh=yh=!0;else{if(0===a.lanes&&(null===g||0===g.lanes)&&(g=b.lastRenderedReducer,null!==g))try{var h=b.lastRenderedState,k=g(h,c);f.eagerReducer=g;f.eagerState=k;if(He(k,h))return}catch(l){}finally{}Jg(a,e,d)}}\nvar Gh={readContext:vg,useCallback:Ah,useContext:Ah,useEffect:Ah,useImperativeHandle:Ah,useLayoutEffect:Ah,useMemo:Ah,useReducer:Ah,useRef:Ah,useState:Ah,useDebugValue:Ah,useDeferredValue:Ah,useTransition:Ah,useMutableSource:Ah,useOpaqueIdentifier:Ah,unstable_isNewReconciler:!1},Dh={readContext:vg,useCallback:function(a,b){Hh().memoizedState=[a,void 0===b?null:b];return a},useContext:vg,useEffect:Wh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Uh(4,2,Zh.bind(null,\nb,a),c)},useLayoutEffect:function(a,b){return Uh(4,2,a,b)},useMemo:function(a,b){var c=Hh();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Hh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={pending:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Oh.bind(null,R,a);return[d.memoizedState,a]},useRef:Sh,useState:Qh,useDebugValue:ai,useDeferredValue:function(a){var b=Qh(a),c=b[0],d=b[1];Wh(function(){var b=wh.transition;\nwh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Qh(!1),b=a[0];a=di.bind(null,a[1]);Sh(a);return[a,b]},useMutableSource:function(a,b,c){var d=Hh();d.memoizedState={refs:{getSnapshot:b,setSnapshot:null},source:a,subscribe:c};return Nh(d,a,b,c)},useOpaqueIdentifier:function(){if(lh){var a=!1,b=uf(function(){a||(a=!0,c(\"r:\"+(tf++).toString(36)));throw Error(y(355));}),c=Qh(b)[1];0===(R.mode&2)&&(R.flags|=516,Rh(5,function(){c(\"r:\"+(tf++).toString(36))},\nvoid 0,null));return b}b=\"r:\"+(tf++).toString(36);Qh(b);return b},unstable_isNewReconciler:!1},Eh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Kh,useRef:Th,useState:function(){return Kh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Kh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Kh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Kh(Jh)[0]},unstable_isNewReconciler:!1},Fh={readContext:vg,useCallback:bi,useContext:vg,useEffect:Xh,useImperativeHandle:$h,useLayoutEffect:Yh,useMemo:ci,useReducer:Lh,useRef:Th,useState:function(){return Lh(Jh)},useDebugValue:ai,useDeferredValue:function(a){var b=Lh(Jh),c=b[0],d=b[1];Xh(function(){var b=wh.transition;wh.transition=1;try{d(a)}finally{wh.transition=b}},[a]);return c},useTransition:function(){var a=Lh(Jh)[0];return[Th().current,\na]},useMutableSource:Ph,useOpaqueIdentifier:function(){return Lh(Jh)[0]},unstable_isNewReconciler:!1},ei=ra.ReactCurrentOwner,ug=!1;function fi(a,b,c,d){b.child=null===a?Zg(b,null,c,d):Yg(b,a.child,c,d)}function gi(a,b,c,d,e){c=c.render;var f=b.ref;tg(b,e);d=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,d,e);return b.child}\nfunction ii(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!ji(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ki(a,b,g,d,e,f);a=Vg(c.type,null,d,b,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(0===(e&f)&&(e=g.memoizedProps,c=c.compare,c=null!==c?c:Je,c(e,d)&&a.ref===b.ref))return hi(a,b,f);b.flags|=1;a=Tg(g,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction ki(a,b,c,d,e,f){if(null!==a&&Je(a.memoizedProps,d)&&a.ref===b.ref)if(ug=!1,0!==(f&e))0!==(a.flags&16384)&&(ug=!0);else return b.lanes=a.lanes,hi(a,b,f);return li(a,b,c,d,f)}\nfunction mi(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode||\"unstable-defer-without-hiding\"===d.mode)if(0===(b.mode&4))b.memoizedState={baseLanes:0},ni(b,c);else if(0!==(c&1073741824))b.memoizedState={baseLanes:0},ni(b,null!==f?f.baseLanes:c);else return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a},ni(b,a),null;else null!==f?(d=f.baseLanes|c,b.memoizedState=null):d=c,ni(b,d);fi(a,b,e,c);return b.child}\nfunction oi(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=128}function li(a,b,c,d,e){var f=Ff(c)?Df:M.current;f=Ef(b,f);tg(b,e);c=Ch(a,b,c,d,f,e);if(null!==a&&!ug)return b.updateQueue=a.updateQueue,b.flags&=-517,a.lanes&=~e,hi(a,b,e);b.flags|=1;fi(a,b,c,e);return b.child}\nfunction pi(a,b,c,d,e){if(Ff(c)){var f=!0;Jf(b)}else f=!1;tg(b,e);if(null===b.stateNode)null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),Mg(b,c,d),Og(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=vg(l):(l=Ff(c)?Df:M.current,l=Ef(b,l));var n=c.getDerivedStateFromProps,A=\"function\"===typeof n||\"function\"===typeof g.getSnapshotBeforeUpdate;A||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\n\"function\"!==typeof g.componentWillReceiveProps||(h!==d||k!==l)&&Ng(b,g,d,l);wg=!1;var p=b.memoizedState;g.state=p;Cg(b,d,g,e);k=b.memoizedState;h!==d||p!==k||N.current||wg?(\"function\"===typeof n&&(Gg(b,c,n,d),k=b.memoizedState),(h=wg||Lg(b,c,h,d,p,k,l))?(A||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===\ntypeof g.componentDidMount&&(b.flags|=4)):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4),d=!1)}else{g=b.stateNode;yg(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:lg(b.type,h);g.props=l;A=b.pendingProps;p=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=vg(k):(k=Ff(c)?Df:M.current,k=Ef(b,k));var C=c.getDerivedStateFromProps;(n=\"function\"===typeof C||\n\"function\"===typeof g.getSnapshotBeforeUpdate)||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==A||p!==k)&&Ng(b,g,d,k);wg=!1;p=b.memoizedState;g.state=p;Cg(b,d,g,e);var x=b.memoizedState;h!==A||p!==x||N.current||wg?(\"function\"===typeof C&&(Gg(b,c,C,d),x=b.memoizedState),(l=wg||Lg(b,c,l,d,p,x,k))?(n||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,\nx,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&g.UNSAFE_componentWillUpdate(d,x,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=256)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),b.memoizedProps=d,b.memoizedState=x),g.props=d,g.state=x,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||\nh===a.memoizedProps&&p===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&p===a.memoizedState||(b.flags|=256),d=!1)}return qi(a,b,c,d,f,e)}\nfunction qi(a,b,c,d,e,f){oi(a,b);var g=0!==(b.flags&64);if(!d&&!g)return e&&Kf(b,c,!1),hi(a,b,f);d=b.stateNode;ei.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Yg(b,a.child,null,f),b.child=Yg(b,null,h,f)):fi(a,b,h,f);b.memoizedState=d.state;e&&Kf(b,c,!0);return b.child}function ri(a){var b=a.stateNode;b.pendingContext?Hf(a,b.pendingContext,b.pendingContext!==b.context):b.context&&Hf(a,b.context,!1);eh(a,b.containerInfo)}\nvar si={dehydrated:null,retryLane:0};\nfunction ti(a,b,c){var d=b.pendingProps,e=P.current,f=!1,g;(g=0!==(b.flags&64))||(g=null!==a&&null===a.memoizedState?!1:0!==(e&2));g?(f=!0,b.flags&=-65):null!==a&&null===a.memoizedState||void 0===d.fallback||!0===d.unstable_avoidThisFallback||(e|=1);I(P,e&1);if(null===a){void 0!==d.fallback&&ph(b);a=d.children;e=d.fallback;if(f)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},b.memoizedState=si,a;if(\"number\"===typeof d.unstable_expectedLoadTime)return a=ui(b,a,e,c),b.child.memoizedState={baseLanes:c},\nb.memoizedState=si,b.lanes=33554432,a;c=vi({mode:\"visible\",children:a},b.mode,c,null);c.return=b;return b.child=c}if(null!==a.memoizedState){if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}if(f)return d=wi(a,b,d.children,d.fallback,c),f=b.child,e=a.child.memoizedState,f.memoizedState=null===e?{baseLanes:c}:\n{baseLanes:e.baseLanes|c},f.childLanes=a.childLanes&~c,b.memoizedState=si,d;c=xi(a,b,d.children,c);b.memoizedState=null;return c}function ui(a,b,c,d){var e=a.mode,f=a.child;b={mode:\"hidden\",children:b};0===(e&2)&&null!==f?(f.childLanes=0,f.pendingProps=b):f=vi(b,e,0,null);c=Xg(c,e,d,null);f.return=a;c.return=a;f.sibling=c;a.child=f;return c}\nfunction xi(a,b,c,d){var e=a.child;a=e.sibling;c=Tg(e,{mode:\"visible\",children:c});0===(b.mode&2)&&(c.lanes=d);c.return=b;c.sibling=null;null!==a&&(a.nextEffect=null,a.flags=8,b.firstEffect=b.lastEffect=a);return b.child=c}\nfunction wi(a,b,c,d,e){var f=b.mode,g=a.child;a=g.sibling;var h={mode:\"hidden\",children:c};0===(f&2)&&b.child!==g?(c=b.child,c.childLanes=0,c.pendingProps=h,g=c.lastEffect,null!==g?(b.firstEffect=c.firstEffect,b.lastEffect=g,g.nextEffect=null):b.firstEffect=b.lastEffect=null):c=Tg(g,h);null!==a?d=Tg(a,d):(d=Xg(d,f,e,null),d.flags|=2);d.return=b;c.return=b;c.sibling=d;b.child=c;return d}function yi(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);sg(a.return,b)}\nfunction zi(a,b,c,d,e,f){var g=a.memoizedState;null===g?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e,lastEffect:f}:(g.isBackwards=b,g.rendering=null,g.renderingStartTime=0,g.last=d,g.tail=c,g.tailMode=e,g.lastEffect=f)}\nfunction Ai(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;fi(a,b,d.children,c);d=P.current;if(0!==(d&2))d=d&1|2,b.flags|=64;else{if(null!==a&&0!==(a.flags&64))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&yi(a,c);else if(19===a.tag)yi(a,c);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}I(P,d);if(0===(b.mode&2))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===ih(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);zi(b,!1,e,c,f,b.lastEffect);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===ih(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}zi(b,!0,c,null,f,b.lastEffect);break;case \"together\":zi(b,!1,null,null,void 0,b.lastEffect);break;default:b.memoizedState=null}return b.child}\nfunction hi(a,b,c){null!==a&&(b.dependencies=a.dependencies);Dg|=b.lanes;if(0!==(c&b.childLanes)){if(null!==a&&b.child!==a.child)throw Error(y(153));if(null!==b.child){a=b.child;c=Tg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Tg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}return null}var Bi,Ci,Di,Ei;\nBi=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Ci=function(){};\nDi=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;dh(ah.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"option\":e=eb(a,e);d=eb(a,d);f=[];break;case \"select\":e=m({},e,{value:void 0});d=m({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=jf)}vb(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===\nl){var h=e[l];for(g in h)h.hasOwnProperty(g)&&(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ca.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||\n(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,c)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ca.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&G(\"scroll\",a),f||h===k||(f=[])):\"object\"===typeof k&&null!==k&&k.$$typeof===Ga?k.toString():(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",\nc);var l=f;if(b.updateQueue=l)b.flags|=4}};Ei=function(a,b,c,d){c!==d&&(b.flags|=4)};function Fi(a,b){if(!lh)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction Gi(a,b,c){var d=b.pendingProps;switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return null;case 1:return Ff(b.type)&&Gf(),null;case 3:fh();H(N);H(M);uh();d=b.stateNode;d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)rh(b)?b.flags|=4:d.hydrate||(b.flags|=256);Ci(b);return null;case 5:hh(b);var e=dh(ch.current);c=b.type;if(null!==a&&null!=b.stateNode)Di(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=128);else{if(!d){if(null===\nb.stateNode)throw Error(y(166));return null}a=dh(ah.current);if(rh(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[wf]=b;d[xf]=f;switch(c){case \"dialog\":G(\"cancel\",d);G(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",d);break;case \"video\":case \"audio\":for(a=0;a<Xe.length;a++)G(Xe[a],d);break;case \"source\":G(\"error\",d);break;case \"img\":case \"image\":case \"link\":G(\"error\",d);G(\"load\",d);break;case \"details\":G(\"toggle\",d);break;case \"input\":Za(d,f);G(\"invalid\",d);break;case \"select\":d._wrapperState=\n{wasMultiple:!!f.multiple};G(\"invalid\",d);break;case \"textarea\":hb(d,f),G(\"invalid\",d)}vb(c,f);a=null;for(var g in f)f.hasOwnProperty(g)&&(e=f[g],\"children\"===g?\"string\"===typeof e?d.textContent!==e&&(a=[\"children\",e]):\"number\"===typeof e&&d.textContent!==\"\"+e&&(a=[\"children\",\"\"+e]):ca.hasOwnProperty(g)&&null!=e&&\"onScroll\"===g&&G(\"scroll\",d));switch(c){case \"input\":Va(d);cb(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=\njf)}d=a;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;a===kb.html&&(a=lb(c));a===kb.html?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<Xe.length;e++)G(Xe[e],a);e=d;break;case \"source\":G(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":G(\"error\",a);G(\"load\",a);e=d;break;case \"details\":G(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);G(\"invalid\",a);break;case \"option\":e=eb(a,d);break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=m({},d,{value:void 0});G(\"invalid\",a);break;case \"textarea\":hb(a,d);e=\ngb(a,d);G(\"invalid\",a);break;default:e=d}vb(c,e);var h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?tb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&ob(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==c||\"\"!==k)&&pb(a,k):\"number\"===typeof k&&pb(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ca.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&G(\"scroll\",a):null!=k&&qa(a,f,k,g))}switch(c){case \"input\":Va(a);cb(a,d,!1);\nbreak;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=jf)}mf(c,d)&&(b.flags|=4)}null!==b.ref&&(b.flags|=128)}return null;case 6:if(a&&null!=b.stateNode)Ei(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(y(166));\nc=dh(ch.current);dh(ah.current);rh(b)?(d=b.stateNode,c=b.memoizedProps,d[wf]=b,d.nodeValue!==c&&(b.flags|=4)):(d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[wf]=b,b.stateNode=d)}return null;case 13:H(P);d=b.memoizedState;if(0!==(b.flags&64))return b.lanes=c,b;d=null!==d;c=!1;null===a?void 0!==b.memoizedProps.fallback&&rh(b):c=null!==a.memoizedState;if(d&&!c&&0!==(b.mode&2))if(null===a&&!0!==b.memoizedProps.unstable_avoidThisFallback||0!==(P.current&1))0===V&&(V=3);else{if(0===V||3===V)V=\n4;null===U||0===(Dg&134217727)&&0===(Hi&134217727)||Ii(U,W)}if(d||c)b.flags|=4;return null;case 4:return fh(),Ci(b),null===a&&cf(b.stateNode.containerInfo),null;case 10:return rg(b),null;case 17:return Ff(b.type)&&Gf(),null;case 19:H(P);d=b.memoizedState;if(null===d)return null;f=0!==(b.flags&64);g=d.rendering;if(null===g)if(f)Fi(d,!1);else{if(0!==V||null!==a&&0!==(a.flags&64))for(a=b.child;null!==a;){g=ih(a);if(null!==g){b.flags|=64;Fi(d,!1);f=g.updateQueue;null!==f&&(b.updateQueue=f,b.flags|=4);\nnull===d.lastEffect&&(b.firstEffect=null);b.lastEffect=d.lastEffect;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=2,f.nextEffect=null,f.firstEffect=null,f.lastEffect=null,g=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,\nf.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;I(P,P.current&1|2);return b.child}a=a.sibling}null!==d.tail&&O()>Ji&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;e<f.length;e+=\n2){var g=f[e],h=f[e+1];\"style\"===g?tb(c,h):\"dangerouslySetInnerHTML\"===g?ob(c,h):\"children\"===g?pb(c,h):qa(c,g,h,b)}switch(a){case \"input\":ab(c,d);break;case \"textarea\":ib(c,d);break;case \"select\":a=c._wrapperState.wasMultiple,c._wrapperState.wasMultiple=!!d.multiple,f=d.value,null!=f?fb(c,!!d.multiple,f,!1):a!==!!d.multiple&&(null!=d.defaultValue?fb(c,!!d.multiple,d.defaultValue,!0):fb(c,!!d.multiple,d.multiple?[]:\"\",!1))}}}return;case 6:if(null===b.stateNode)throw Error(y(162));b.stateNode.nodeValue=\nb.memoizedProps;return;case 3:c=b.stateNode;c.hydrate&&(c.hydrate=!1,Cc(c.containerInfo));return;case 12:return;case 13:null!==b.memoizedState&&(jj=O(),aj(b.child,!0));kj(b);return;case 19:kj(b);return;case 17:return;case 23:case 24:aj(b,null!==b.memoizedState);return}throw Error(y(163));}function kj(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Ui);b.forEach(function(b){var d=lj.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction mj(a,b){return null!==a&&(a=a.memoizedState,null===a||null!==a.dehydrated)?(b=b.memoizedState,null!==b&&null===b.dehydrated):!1}var nj=Math.ceil,oj=ra.ReactCurrentDispatcher,pj=ra.ReactCurrentOwner,X=0,U=null,Y=null,W=0,qj=0,rj=Bf(0),V=0,sj=null,tj=0,Dg=0,Hi=0,uj=0,vj=null,jj=0,Ji=Infinity;function wj(){Ji=O()+500}var Z=null,Qi=!1,Ri=null,Ti=null,xj=!1,yj=null,zj=90,Aj=[],Bj=[],Cj=null,Dj=0,Ej=null,Fj=-1,Gj=0,Hj=0,Ij=null,Jj=!1;function Hg(){return 0!==(X&48)?O():-1!==Fj?Fj:Fj=O()}\nfunction Ig(a){a=a.mode;if(0===(a&2))return 1;if(0===(a&4))return 99===eg()?1:2;0===Gj&&(Gj=tj);if(0!==kg.transition){0!==Hj&&(Hj=null!==vj?vj.pendingLanes:0);a=Gj;var b=4186112&~Hj;b&=-b;0===b&&(a=4186112&~a,b=a&-a,0===b&&(b=8192));return b}a=eg();0!==(X&4)&&98===a?a=Xc(12,Gj):(a=Sc(a),a=Xc(a,Gj));return a}\nfunction Jg(a,b,c){if(50<Dj)throw Dj=0,Ej=null,Error(y(185));a=Kj(a,b);if(null===a)return null;$c(a,b,c);a===U&&(Hi|=b,4===V&&Ii(a,W));var d=eg();1===b?0!==(X&8)&&0===(X&48)?Lj(a):(Mj(a,c),0===X&&(wj(),ig())):(0===(X&4)||98!==d&&99!==d||(null===Cj?Cj=new Set([a]):Cj.add(a)),Mj(a,c));vj=a}function Kj(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}\nfunction Mj(a,b){for(var c=a.callbackNode,d=a.suspendedLanes,e=a.pingedLanes,f=a.expirationTimes,g=a.pendingLanes;0<g;){var h=31-Vc(g),k=1<<h,l=f[h];if(-1===l){if(0===(k&d)||0!==(k&e)){l=b;Rc(k);var n=F;f[h]=10<=n?l+250:6<=n?l+5E3:-1}}else l<=b&&(a.expiredLanes|=k);g&=~k}d=Uc(a,a===U?W:0);b=F;if(0===d)null!==c&&(c!==Zf&&Pf(c),a.callbackNode=null,a.callbackPriority=0);else{if(null!==c){if(a.callbackPriority===b)return;c!==Zf&&Pf(c)}15===b?(c=Lj.bind(null,a),null===ag?(ag=[c],bg=Of(Uf,jg)):ag.push(c),\nc=Zf):14===b?c=hg(99,Lj.bind(null,a)):(c=Tc(b),c=hg(c,Nj.bind(null,a)));a.callbackPriority=b;a.callbackNode=c}}\nfunction Nj(a){Fj=-1;Hj=Gj=0;if(0!==(X&48))throw Error(y(327));var b=a.callbackNode;if(Oj()&&a.callbackNode!==b)return null;var c=Uc(a,a===U?W:0);if(0===c)return null;var d=c;var e=X;X|=16;var f=Pj();if(U!==a||W!==d)wj(),Qj(a,d);do try{Rj();break}catch(h){Sj(a,h)}while(1);qg();oj.current=f;X=e;null!==Y?d=0:(U=null,W=0,d=V);if(0!==(tj&Hi))Qj(a,0);else if(0!==d){2===d&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),c=Wc(a),0!==c&&(d=Tj(a,c)));if(1===d)throw b=sj,Qj(a,0),Ii(a,c),Mj(a,O()),b;a.finishedWork=\na.current.alternate;a.finishedLanes=c;switch(d){case 0:case 1:throw Error(y(345));case 2:Uj(a);break;case 3:Ii(a,c);if((c&62914560)===c&&(d=jj+500-O(),10<d)){if(0!==Uc(a,0))break;e=a.suspendedLanes;if((e&c)!==c){Hg();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=of(Uj.bind(null,a),d);break}Uj(a);break;case 4:Ii(a,c);if((c&4186112)===c)break;d=a.eventTimes;for(e=-1;0<c;){var g=31-Vc(c);f=1<<g;g=d[g];g>e&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10<c){a.timeoutHandle=of(Uj.bind(null,a),c);break}Uj(a);break;case 5:Uj(a);break;default:throw Error(y(329));}}Mj(a,O());return a.callbackNode===b?Nj.bind(null,a):null}function Ii(a,b){b&=~uj;b&=~Hi;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-Vc(b),d=1<<c;a[c]=-1;b&=~d}}\nfunction Lj(a){if(0!==(X&48))throw Error(y(327));Oj();if(a===U&&0!==(a.expiredLanes&W)){var b=W;var c=Tj(a,b);0!==(tj&Hi)&&(b=Uc(a,b),c=Tj(a,b))}else b=Uc(a,0),c=Tj(a,b);0!==a.tag&&2===c&&(X|=64,a.hydrate&&(a.hydrate=!1,qf(a.containerInfo)),b=Wc(a),0!==b&&(c=Tj(a,b)));if(1===c)throw c=sj,Qj(a,0),Ii(a,b),Mj(a,O()),c;a.finishedWork=a.current.alternate;a.finishedLanes=b;Uj(a);Mj(a,O());return null}\nfunction Vj(){if(null!==Cj){var a=Cj;Cj=null;a.forEach(function(a){a.expiredLanes|=24&a.pendingLanes;Mj(a,O())})}ig()}function Wj(a,b){var c=X;X|=1;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function Xj(a,b){var c=X;X&=-2;X|=8;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}}function ni(a,b){I(rj,qj);qj|=b;tj|=b}function Ki(){qj=rj.current;H(rj)}\nfunction Qj(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,pf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&Gf();break;case 3:fh();H(N);H(M);uh();break;case 5:hh(d);break;case 4:fh();break;case 13:H(P);break;case 19:H(P);break;case 10:rg(d);break;case 23:case 24:Ki()}c=c.return}U=a;Y=Tg(a.current,null);W=qj=tj=b;V=0;sj=null;uj=Hi=Dg=0}\nfunction Sj(a,b){do{var c=Y;try{qg();vh.current=Gh;if(yh){for(var d=R.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}yh=!1}xh=0;T=S=R=null;zh=!1;pj.current=null;if(null===c||null===c.return){V=1;sj=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=W;h.flags|=2048;h.firstEffect=h.lastEffect=null;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k;if(0===(h.mode&2)){var n=h.alternate;n?(h.updateQueue=n.updateQueue,h.memoizedState=n.memoizedState,h.lanes=n.lanes):\n(h.updateQueue=null,h.memoizedState=null)}var A=0!==(P.current&1),p=g;do{var C;if(C=13===p.tag){var x=p.memoizedState;if(null!==x)C=null!==x.dehydrated?!0:!1;else{var w=p.memoizedProps;C=void 0===w.fallback?!1:!0!==w.unstable_avoidThisFallback?!0:A?!1:!0}}if(C){var z=p.updateQueue;if(null===z){var u=new Set;u.add(l);p.updateQueue=u}else z.add(l);if(0===(p.mode&2)){p.flags|=64;h.flags|=16384;h.flags&=-2981;if(1===h.tag)if(null===h.alternate)h.tag=17;else{var t=zg(-1,1);t.tag=2;Ag(h,t)}h.lanes|=1;break a}k=\nvoid 0;h=b;var q=f.pingCache;null===q?(q=f.pingCache=new Oi,k=new Set,q.set(l,k)):(k=q.get(l),void 0===k&&(k=new Set,q.set(l,k)));if(!k.has(h)){k.add(h);var v=Yj.bind(null,f,l,h);l.then(v,v)}p.flags|=4096;p.lanes=b;break a}p=p.return}while(null!==p);k=Error((Ra(h.type)||\"A React component\")+\" suspended while rendering, but no fallback UI was specified.\\n\\nAdd a <Suspense fallback=...> component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1<b.flags&&(null!==\na.lastEffect?a.lastEffect.nextEffect=b:a.firstEffect=b,a.lastEffect=b))}else{c=Li(b);if(null!==c){c.flags&=2047;Y=c;return}null!==a&&(a.firstEffect=a.lastEffect=null,a.flags|=2048)}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===V&&(V=5)}function Uj(a){var b=eg();gg(99,dk.bind(null,a,b));return null}\nfunction dk(a,b){do Oj();while(null!==yj);if(0!==(X&48))throw Error(y(327));var c=a.finishedWork;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(y(177));a.callbackNode=null;var d=c.lanes|c.childLanes,e=d,f=a.pendingLanes&~e;a.pendingLanes=e;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=e;a.mutableReadLanes&=e;a.entangledLanes&=e;e=a.entanglements;for(var g=a.eventTimes,h=a.expirationTimes;0<f;){var k=31-Vc(f),l=1<<k;e[k]=0;g[k]=-1;h[k]=-1;f&=~l}null!==\nCj&&0===(d&24)&&Cj.has(a)&&Cj.delete(a);a===U&&(Y=U=null,W=0);1<c.flags?null!==c.lastEffect?(c.lastEffect.nextEffect=c,d=c.firstEffect):d=c:d=c.firstEffect;if(null!==d){e=X;X|=32;pj.current=null;kf=fd;g=Ne();if(Oe(g)){if(\"selectionStart\"in g)h={start:g.selectionStart,end:g.selectionEnd};else a:if(h=(h=g.ownerDocument)&&h.defaultView||window,(l=h.getSelection&&h.getSelection())&&0!==l.rangeCount){h=l.anchorNode;f=l.anchorOffset;k=l.focusNode;l=l.focusOffset;try{h.nodeType,k.nodeType}catch(va){h=null;\nbreak a}var n=0,A=-1,p=-1,C=0,x=0,w=g,z=null;b:for(;;){for(var u;;){w!==h||0!==f&&3!==w.nodeType||(A=n+f);w!==k||0!==l&&3!==w.nodeType||(p=n+l);3===w.nodeType&&(n+=w.nodeValue.length);if(null===(u=w.firstChild))break;z=w;w=u}for(;;){if(w===g)break b;z===h&&++C===f&&(A=n);z===k&&++x===l&&(p=n);if(null!==(u=w.nextSibling))break;w=z;z=w.parentNode}w=u}h=-1===A||-1===p?null:{start:A,end:p}}else h=null;h=h||{start:0,end:0}}else h=null;lf={focusedElem:g,selectionRange:h};fd=!1;Ij=null;Jj=!1;Z=d;do try{ek()}catch(va){if(null===\nZ)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Ij=null;Z=d;do try{for(g=a;null!==Z;){var t=Z.flags;t&16&&pb(Z.stateNode,\"\");if(t&128){var q=Z.alternate;if(null!==q){var v=q.ref;null!==v&&(\"function\"===typeof v?v(null):v.current=null)}}switch(t&1038){case 2:fj(Z);Z.flags&=-3;break;case 6:fj(Z);Z.flags&=-3;ij(Z.alternate,Z);break;case 1024:Z.flags&=-1025;break;case 1028:Z.flags&=-1025;ij(Z.alternate,Z);break;case 4:ij(Z.alternate,Z);break;case 8:h=Z;cj(g,h);var J=h.alternate;dj(h);null!==\nJ&&dj(J)}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);v=lf;q=Ne();t=v.focusedElem;g=v.selectionRange;if(q!==t&&t&&t.ownerDocument&&Me(t.ownerDocument.documentElement,t)){null!==g&&Oe(t)&&(q=g.start,v=g.end,void 0===v&&(v=q),\"selectionStart\"in t?(t.selectionStart=q,t.selectionEnd=Math.min(v,t.value.length)):(v=(q=t.ownerDocument||document)&&q.defaultView||window,v.getSelection&&(v=v.getSelection(),h=t.textContent.length,J=Math.min(g.start,h),g=void 0===\ng.end?J:Math.min(g.end,h),!v.extend&&J>g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;t<q.length;t++)v=q[t],v.element.scrollLeft=v.left,v.element.scrollTop=v.top}fd=!!kf;lf=kf=null;a.current=c;Z=d;do try{for(t=a;null!==Z;){var K=Z.flags;K&36&&Yi(t,Z.alternate,Z);if(K&128){q=void 0;var Q=Z.ref;if(null!==Q){var L=Z.stateNode;switch(Z.tag){case 5:q=L;break;default:q=L}\"function\"===typeof Q?Q(q):Q.current=q}}Z=Z.nextEffect}}catch(va){if(null===Z)throw Error(y(330));Wi(Z,va);Z=Z.nextEffect}while(null!==Z);Z=null;$f();X=e}else a.current=c;if(xj)xj=!1,yj=a,zj=b;else for(Z=d;null!==Z;)b=\nZ.nextEffect,Z.nextEffect=null,Z.flags&8&&(K=Z,K.sibling=null,K.stateNode=null),Z=b;d=a.pendingLanes;0===d&&(Ti=null);1===d?a===Ej?Dj++:(Dj=0,Ej=a):Dj=0;c=c.stateNode;if(Mf&&\"function\"===typeof Mf.onCommitFiberRoot)try{Mf.onCommitFiberRoot(Lf,c,void 0,64===(c.current.flags&64))}catch(va){}Mj(a,O());if(Qi)throw Qi=!1,a=Ri,Ri=null,a;if(0!==(X&8))return null;ig();return null}\nfunction ek(){for(;null!==Z;){var a=Z.alternate;Jj||null===Ij||(0!==(Z.flags&8)?dc(Z,Ij)&&(Jj=!0):13===Z.tag&&mj(a,Z)&&dc(Z,Ij)&&(Jj=!0));var b=Z.flags;0!==(b&256)&&Xi(a,Z);0===(b&512)||xj||(xj=!0,hg(97,function(){Oj();return null}));Z=Z.nextEffect}}function Oj(){if(90!==zj){var a=97<zj?97:zj;zj=90;return gg(a,fk)}return!1}function $i(a,b){Aj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}function Zi(a,b){Bj.push(b,a);xj||(xj=!0,hg(97,function(){Oj();return null}))}\nfunction fk(){if(null===yj)return!1;var a=yj;yj=null;if(0!==(X&48))throw Error(y(331));var b=X;X|=32;var c=Bj;Bj=[];for(var d=0;d<c.length;d+=2){var e=c[d],f=c[d+1],g=e.destroy;e.destroy=void 0;if(\"function\"===typeof g)try{g()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}c=Aj;Aj=[];for(d=0;d<c.length;d+=2){e=c[d];f=c[d+1];try{var h=e.create;e.destroy=h()}catch(k){if(null===f)throw Error(y(330));Wi(f,k)}}for(h=a.current.firstEffect;null!==h;)a=h.nextEffect,h.nextEffect=null,h.flags&8&&(h.sibling=\nnull,h.stateNode=null),h=a;X=b;ig();return!0}function gk(a,b,c){b=Mi(c,b);b=Pi(a,b,1);Ag(a,b);b=Hg();a=Kj(a,1);null!==a&&($c(a,1,b),Mj(a,b))}\nfunction Wi(a,b){if(3===a.tag)gk(a,a,b);else for(var c=a.return;null!==c;){if(3===c.tag){gk(c,a,b);break}else if(1===c.tag){var d=c.stateNode;if(\"function\"===typeof c.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d))){a=Mi(b,a);var e=Si(c,a,1);Ag(c,e);e=Hg();c=Kj(c,1);if(null!==c)$c(c,1,e),Mj(c,e);else if(\"function\"===typeof d.componentDidCatch&&(null===Ti||!Ti.has(d)))try{d.componentDidCatch(b,a)}catch(f){}break}}c=c.return}}\nfunction Yj(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=Hg();a.pingedLanes|=a.suspendedLanes&c;U===a&&(W&c)===c&&(4===V||3===V&&(W&62914560)===W&&500>O()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e<a.length;e+=2)f=a[e],f._workInProgressVersionPrimary=a[e+1],th.push(f);c=Zg(b,null,d,c);for(b.child=c;c;)c.flags=c.flags&-3|1024,c=c.sibling}else fi(a,b,d,c),sh();b=b.child}return b;case 5:return gh(b),null===a&&\nph(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,nf(d,e)?g=null:null!==f&&nf(d,f)&&(b.flags|=16),oi(a,b),fi(a,b,g,c),b.child;case 6:return null===a&&ph(b),null;case 13:return ti(a,b,c);case 4:return eh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Yg(b,null,d,c):fi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),gi(a,b,d,e,c);case 7:return fi(a,b,b.pendingProps,c),b.child;case 8:return fi(a,b,b.pendingProps.children,\nc),b.child;case 12:return fi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(mg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=He(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!N.current){b=hi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=\nk.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=zg(-1,c&-c),l.tag=2,Ag(h,l));h.lanes|=c;l=h.alternate;null!==l&&(l.lanes|=c);sg(h.return,c);k.lanes|=c;break}l=l.next}}else g=10===h.tag?h.type===b.type?null:h.child:h.child;if(null!==g)g.return=h;else for(g=h;null!==g;){if(g===b){g=null;break}h=g.sibling;if(null!==h){h.return=g.return;g=h;break}g=g.return}h=g}fi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,f=b.pendingProps,d=f.children,tg(b,c),e=vg(e,\nf.unstable_observedBits),d=d(e),b.flags|=1,fi(a,b,d,c),b.child;case 14:return e=b.type,f=lg(e,b.pendingProps),f=lg(e.type,f),ii(a,b,e,f,d,c);case 15:return ki(a,b,b.type,b.pendingProps,d,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2),b.tag=1,Ff(d)?(a=!0,Jf(b)):a=!1,tg(b,c),Mg(b,d,e),Og(b,d,e,c),qi(null,b,d,!0,a,c);case 19:return Ai(a,b,c);case 23:return mi(a,b,c);case 24:return mi(a,b,c)}throw Error(y(156,b.tag));\n};function ik(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.flags=0;this.lastEffect=this.firstEffect=this.nextEffect=null;this.childLanes=this.lanes=0;this.alternate=null}function nh(a,b,c,d){return new ik(a,b,c,d)}function ji(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction hk(a){if(\"function\"===typeof a)return ji(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Aa)return 11;if(a===Da)return 14}return 2}\nfunction Tg(a,b){var c=a.alternate;null===c?(c=nh(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.nextEffect=null,c.firstEffect=null,c.lastEffect=null);c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Vg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)ji(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ua:return Xg(c.children,e,f,b);case Ha:g=8;e|=16;break;case wa:g=8;e|=1;break;case xa:return a=nh(12,c,b,e|8),a.elementType=xa,a.type=xa,a.lanes=f,a;case Ba:return a=nh(13,c,b,e),a.type=Ba,a.elementType=Ba,a.lanes=f,a;case Ca:return a=nh(19,c,b,e),a.elementType=Ca,a.lanes=f,a;case Ia:return vi(c,e,f,b);case Ja:return a=nh(24,c,b,e),a.elementType=Ja,a.lanes=f,a;default:if(\"object\"===\ntypeof a&&null!==a)switch(a.$$typeof){case ya:g=10;break a;case za:g=9;break a;case Aa:g=11;break a;case Da:g=14;break a;case Ea:g=16;d=null;break a;case Fa:g=22;break a}throw Error(y(130,null==a?a:typeof a,\"\"));}b=nh(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Xg(a,b,c,d){a=nh(7,a,d,b);a.lanes=c;return a}function vi(a,b,c,d){a=nh(23,a,d,b);a.elementType=Ia;a.lanes=c;return a}function Ug(a,b,c){a=nh(6,a,null,b);a.lanes=c;return a}\nfunction Wg(a,b,c){b=nh(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction jk(a,b,c){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.pendingContext=this.context=null;this.hydrate=c;this.callbackNode=null;this.callbackPriority=0;this.eventTimes=Zc(0);this.expirationTimes=Zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=Zc(0);this.mutableSourceEagerHydrationData=null}\nfunction kk(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:ta,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction lk(a,b,c,d){var e=b.current,f=Hg(),g=Ig(e);a:if(c){c=c._reactInternals;b:{if(Zb(c)!==c||1!==c.tag)throw Error(y(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(Ff(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(y(171));}if(1===c.tag){var k=c.type;if(Ff(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=zg(f,g);b.payload={element:a};d=void 0===d?null:d;null!==\nd&&(b.callback=d);Ag(e,b);Jg(e,g,f);return g}function mk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function nk(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function ok(a,b){nk(a,b);(a=a.alternate)&&nk(a,b)}function pk(){return null}\nfunction qk(a,b,c){var d=null!=c&&null!=c.hydrationOptions&&c.hydrationOptions.mutableSources||null;c=new jk(a,b,null!=c&&!0===c.hydrate);b=nh(3,null,null,2===b?7:1===b?3:0);c.current=b;b.stateNode=c;xg(b);a[ff]=c.current;cf(8===a.nodeType?a.parentNode:a);if(d)for(a=0;a<d.length;a++){b=d[a];var e=b._getVersion;e=e(b._source);null==c.mutableSourceEagerHydrationData?c.mutableSourceEagerHydrationData=[b,e]:c.mutableSourceEagerHydrationData.push(b,e)}this._internalRoot=c}\nqk.prototype.render=function(a){lk(a,this._internalRoot,null,null)};qk.prototype.unmount=function(){var a=this._internalRoot,b=a.containerInfo;lk(null,a,null,function(){b[ff]=null})};function rk(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}\nfunction sk(a,b){b||(b=a?9===a.nodeType?a.documentElement:a.firstChild:null,b=!(!b||1!==b.nodeType||!b.hasAttribute(\"data-reactroot\")));if(!b)for(var c;c=a.lastChild;)a.removeChild(c);return new qk(a,0,b?{hydrate:!0}:void 0)}\nfunction tk(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f._internalRoot;if(\"function\"===typeof e){var h=e;e=function(){var a=mk(g);h.call(a)}}lk(b,g,a,e)}else{f=c._reactRootContainer=sk(c,d);g=f._internalRoot;if(\"function\"===typeof e){var k=e;e=function(){var a=mk(g);k.call(a)}}Xj(function(){lk(b,g,a,e)})}return mk(g)}ec=function(a){if(13===a.tag){var b=Hg();Jg(a,4,b);ok(a,4)}};fc=function(a){if(13===a.tag){var b=Hg();Jg(a,67108864,b);ok(a,67108864)}};\ngc=function(a){if(13===a.tag){var b=Hg(),c=Ig(a);Jg(a,c,b);ok(a,c)}};hc=function(a,b){return b()};\nyb=function(a,b,c){switch(b){case \"input\":ab(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(y(90));Wa(d);ab(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Wj;\nHb=function(a,b,c,d,e){var f=X;X|=4;try{return gg(98,a.bind(null,b,c,d,e))}finally{X=f,0===X&&(wj(),ig())}};Ib=function(){0===(X&49)&&(Vj(),Oj())};Jb=function(a,b){var c=X;X|=2;try{return a(b)}finally{X=c,0===X&&(wj(),ig())}};function uk(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!rk(b))throw Error(y(200));return kk(a,b,null,c)}var vk={Events:[Cb,ue,Db,Eb,Fb,Oj,{current:!1}]},wk={findFiberByHostInstance:wc,bundleType:0,version:\"17.0.2\",rendererPackageName:\"react-dom\"};\nvar xk={bundleType:wk.bundleType,version:wk.version,rendererPackageName:wk.rendererPackageName,rendererConfig:wk.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ra.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=cc(a);return null===a?null:a.stateNode},findFiberByHostInstance:wk.findFiberByHostInstance||\npk,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var yk=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!yk.isDisabled&&yk.supportsFiber)try{Lf=yk.inject(xk),Mf=yk}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=vk;exports.createPortal=uk;\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(y(188));throw Error(y(268,Object.keys(a)));}a=cc(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a,b){var c=X;if(0!==(c&48))return a(b);X|=1;try{if(a)return gg(99,a.bind(null,b))}finally{X=c,ig()}};exports.hydrate=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!0,c)};\nexports.render=function(a,b,c){if(!rk(b))throw Error(y(200));return tk(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!rk(a))throw Error(y(40));return a._reactRootContainer?(Xj(function(){tk(null,null,a,!1,function(){a._reactRootContainer=null;a[ff]=null})}),!0):!1};exports.unstable_batchedUpdates=Wj;exports.unstable_createPortal=function(a,b){return uk(a,b,2<arguments.length&&void 0!==arguments[2]?arguments[2]:null)};\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!rk(c))throw Error(y(200));if(null==a||void 0===a._reactInternals)throw Error(y(38));return tk(a,b,c,!1,d)};exports.version=\"17.0.2\";\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.ReactReduxContext = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nconst ReactReduxContext = /*#__PURE__*/getContext();\nexports.ReactReduxContext = ReactReduxContext;\nvar _default = ReactReduxContext;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _Context = require(\"./Context\");\n\nvar _Subscription = require(\"../utils/Subscription\");\n\nvar _useIsomorphicLayoutEffect = require(\"../utils/useIsomorphicLayoutEffect\");\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = (0, _Subscription.createSubscription)(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || _Context.ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nvar _default = Provider;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = exports.initializeConnect = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactIs = require(\"react-is\");\n\nvar _selectorFactory = _interopRequireDefault(require(\"../connect/selectorFactory\"));\n\nvar _mapDispatchToProps = require(\"../connect/mapDispatchToProps\");\n\nvar _mapStateToProps = require(\"../connect/mapStateToProps\");\n\nvar _mergeProps = require(\"../connect/mergeProps\");\n\nvar _Subscription = require(\"../utils/Subscription\");\n\nvar _useIsomorphicLayoutEffect = require(\"../utils/useIsomorphicLayoutEffect\");\n\nvar _shallowEqual = _interopRequireDefault(require(\"../utils/shallowEqual\"));\n\nvar _warning = _interopRequireDefault(require(\"../utils/warning\"));\n\nvar _Context = require(\"./Context\");\n\nvar _useSyncExternalStore = require(\"../utils/useSyncExternalStore\");\n\nconst _excluded = [\"reactReduxForwardedRef\"];\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nlet useSyncExternalStore = _useSyncExternalStore.notInitialized;\n\nconst initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\n\nexports.initializeConnect = initializeConnect;\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch<any>,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\n * Infers the type of props that a connector will inject into a component.\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\n * Connects a React component to a Redux store.\n *\n * - Without arguments, just wraps the component, without changing the behavior / props\n *\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\n * is to override ownProps (as stated in the docs), so what remains is everything that's\n * not a state or dispatch prop\n *\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\n * should be valid component props, because it depends on mergeProps implementation.\n * As such, it is the user's responsibility to extend ownProps interface from state or\n * dispatch props or both when applicable\n *\n * @param mapStateToProps A function that extracts values from state\n * @param mapDispatchToProps Setup for dispatching actions\n * @param mergeProps Optional callback to merge state and dispatch props together\n * @param options Options for configuring the connection\n *\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = _shallowEqual.default,\n areStatePropsEqual = _shallowEqual.default,\n areMergedPropsEqual = _shallowEqual.default,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = _Context.ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n (0, _warning.default)('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = (0, _mapStateToProps.mapStateToPropsFactory)(mapStateToProps);\n const initMapDispatchToProps = (0, _mapDispatchToProps.mapDispatchToPropsFactory)(mapDispatchToProps);\n const initMergeProps = (0, _mergeProps.mergePropsFactory)(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !(0, _reactIs.isValidElementType)(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n (0, _reactIs.isContextConsumer)( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a <Provider>, ` + `or pass a custom React context provider to <Provider> and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return (0, _selectorFactory.default)(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = (0, _Subscription.createSubscription)(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return (0, _extends2.default)({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n (0, _useIsomorphicLayoutEffect.useIsomorphicLayoutEffect)(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, (0, _extends2.default)({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, (0, _extends2.default)({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return (0, _hoistNonReactStatics.default)(forwarded, WrappedComponent);\n }\n\n return (0, _hoistNonReactStatics.default)(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nvar _default = connect;\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.createInvalidArgFactory = createInvalidArgFactory;\n\nfunction createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(`Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`);\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.mapDispatchToPropsFactory = mapDispatchToPropsFactory;\n\nvar _bindActionCreators = _interopRequireDefault(require(\"../utils/bindActionCreators\"));\n\nvar _wrapMapToProps = require(\"./wrapMapToProps\");\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? (0, _wrapMapToProps.wrapMapToPropsConstant)(dispatch => // @ts-ignore\n (0, _bindActionCreators.default)(mapDispatchToProps, dispatch)) : !mapDispatchToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(dispatch => ({\n dispatch\n })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore\n (0, _wrapMapToProps.wrapMapToPropsFunc)(mapDispatchToProps, 'mapDispatchToProps') : (0, _invalidArgFactory.createInvalidArgFactory)(mapDispatchToProps, 'mapDispatchToProps');\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.mapStateToPropsFactory = mapStateToPropsFactory;\n\nvar _wrapMapToProps = require(\"./wrapMapToProps\");\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? (0, _wrapMapToProps.wrapMapToPropsConstant)(() => ({})) : typeof mapStateToProps === 'function' ? // @ts-ignore\n (0, _wrapMapToProps.wrapMapToPropsFunc)(mapStateToProps, 'mapStateToProps') : (0, _invalidArgFactory.createInvalidArgFactory)(mapStateToProps, 'mapStateToProps');\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.defaultMergeProps = defaultMergeProps;\nexports.wrapMergePropsFunc = wrapMergePropsFunc;\nexports.mergePropsFactory = mergePropsFactory;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _verifyPlainObject = _interopRequireDefault(require(\"../utils/verifyPlainObject\"));\n\nvar _invalidArgFactory = require(\"./invalidArgFactory\");\n\nfunction defaultMergeProps(stateProps, dispatchProps, ownProps) {\n // @ts-ignore\n return (0, _extends2.default)({}, ownProps, stateProps, dispatchProps);\n}\n\nfunction wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, {\n displayName,\n areMergedPropsEqual\n }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject.default)(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\n\nfunction mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : (0, _invalidArgFactory.createInvalidArgFactory)(mergeProps, 'mergeProps');\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.pureFinalPropsSelectorFactory = pureFinalPropsSelectorFactory;\nexports.default = finalPropsSelectorFactory;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _verifySubselectors = _interopRequireDefault(require(\"./verifySubselectors\"));\n\nconst _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\n\nfunction pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n\n// TODO: Add more comments\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\nfunction finalPropsSelectorFactory(dispatch, _ref) {\n let {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps\n } = _ref,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n (0, _verifySubselectors.default)(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = verifySubselectors;\n\nvar _warning = _interopRequireDefault(require(\"../utils/warning\"));\n\nfunction verify(selector, methodName) {\n if (!selector) {\n throw new Error(`Unexpected value for ${methodName} in connect.`);\n } else if (methodName === 'mapStateToProps' || methodName === 'mapDispatchToProps') {\n if (!Object.prototype.hasOwnProperty.call(selector, 'dependsOnOwnProps')) {\n (0, _warning.default)(`The selector for ${methodName} of connect did not specify a value for dependsOnOwnProps.`);\n }\n }\n}\n\nfunction verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps) {\n verify(mapStateToProps, 'mapStateToProps');\n verify(mapDispatchToProps, 'mapDispatchToProps');\n verify(mergeProps, 'mergeProps');\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.wrapMapToPropsConstant = wrapMapToPropsConstant;\nexports.getDependsOnOwnProps = getDependsOnOwnProps;\nexports.wrapMapToPropsFunc = wrapMapToPropsFunc;\n\nvar _verifyPlainObject = _interopRequireDefault(require(\"../utils/verifyPlainObject\"));\n\nfunction wrapMapToPropsConstant( // * Note:\n// It seems that the dispatch argument\n// could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n// and a state object in some others (ex: whenMapStateToPropsIsMissing)\n// eslint-disable-next-line no-unused-vars\ngetConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\n\n\nfunction getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\n\nfunction wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, {\n displayName\n }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, undefined);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') (0, _verifyPlainObject.default)(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nvar _exportNames = {\n Provider: true,\n connect: true,\n ReactReduxContext: true,\n useDispatch: true,\n createDispatchHook: true,\n useSelector: true,\n createSelectorHook: true,\n useStore: true,\n createStoreHook: true,\n shallowEqual: true\n};\nObject.defineProperty(exports, \"Provider\", {\n enumerable: true,\n get: function () {\n return _Provider.default;\n }\n});\nObject.defineProperty(exports, \"connect\", {\n enumerable: true,\n get: function () {\n return _connect.default;\n }\n});\nObject.defineProperty(exports, \"ReactReduxContext\", {\n enumerable: true,\n get: function () {\n return _Context.ReactReduxContext;\n }\n});\nObject.defineProperty(exports, \"useDispatch\", {\n enumerable: true,\n get: function () {\n return _useDispatch.useDispatch;\n }\n});\nObject.defineProperty(exports, \"createDispatchHook\", {\n enumerable: true,\n get: function () {\n return _useDispatch.createDispatchHook;\n }\n});\nObject.defineProperty(exports, \"useSelector\", {\n enumerable: true,\n get: function () {\n return _useSelector.useSelector;\n }\n});\nObject.defineProperty(exports, \"createSelectorHook\", {\n enumerable: true,\n get: function () {\n return _useSelector.createSelectorHook;\n }\n});\nObject.defineProperty(exports, \"useStore\", {\n enumerable: true,\n get: function () {\n return _useStore.useStore;\n }\n});\nObject.defineProperty(exports, \"createStoreHook\", {\n enumerable: true,\n get: function () {\n return _useStore.createStoreHook;\n }\n});\nObject.defineProperty(exports, \"shallowEqual\", {\n enumerable: true,\n get: function () {\n return _shallowEqual.default;\n }\n});\n\nvar _Provider = _interopRequireDefault(require(\"./components/Provider\"));\n\nvar _connect = _interopRequireDefault(require(\"./components/connect\"));\n\nvar _Context = require(\"./components/Context\");\n\nvar _useDispatch = require(\"./hooks/useDispatch\");\n\nvar _useSelector = require(\"./hooks/useSelector\");\n\nvar _useStore = require(\"./hooks/useStore\");\n\nvar _shallowEqual = _interopRequireDefault(require(\"./utils/shallowEqual\"));\n\nvar _types = require(\"./types\");\n\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _types[key];\n }\n });\n});","\"use strict\";\n\nexports.__esModule = true;\nexports.createDispatchHook = createDispatchHook;\nexports.useDispatch = void 0;\n\nvar _Context = require(\"../components/Context\");\n\nvar _useStore = require(\"./useStore\");\n\n/**\n * Hook factory, which creates a `useDispatch` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useDispatch` hook bound to the specified context.\n */\nfunction createDispatchHook(context = _Context.ReactReduxContext) {\n const useStore = // @ts-ignore\n context === _Context.ReactReduxContext ? _useStore.useStore : (0, _useStore.createStoreHook)(context);\n return function useDispatch() {\n const store = useStore(); // @ts-ignore\n\n return store.dispatch;\n };\n}\n/**\n * A hook to access the redux `dispatch` function.\n *\n * @returns {any|function} redux store's `dispatch` function\n *\n * @example\n *\n * import React, { useCallback } from 'react'\n * import { useDispatch } from 'react-redux'\n *\n * export const CounterComponent = ({ value }) => {\n * const dispatch = useDispatch()\n * const increaseCounter = useCallback(() => dispatch({ type: 'increase-counter' }), [])\n * return (\n * <div>\n * <span>{value}</span>\n * <button onClick={increaseCounter}>Increase counter</button>\n * </div>\n * )\n * }\n */\n\n\nconst useDispatch = /*#__PURE__*/createDispatchHook();\nexports.useDispatch = useDispatch;","\"use strict\";\n\nexports.__esModule = true;\nexports.createReduxContextHook = createReduxContextHook;\nexports.useReduxContext = void 0;\n\nvar _react = require(\"react\");\n\nvar _Context = require(\"../components/Context\");\n\n/**\n * Hook factory, which creates a `useReduxContext` hook bound to a given context. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useReduxContext` hook bound to the specified context.\n */\nfunction createReduxContextHook(context = _Context.ReactReduxContext) {\n return function useReduxContext() {\n const contextValue = (0, _react.useContext)(context);\n\n if (process.env.NODE_ENV !== 'production' && !contextValue) {\n throw new Error('could not find react-redux context value; please ensure the component is wrapped in a <Provider>');\n }\n\n return contextValue;\n };\n}\n/**\n * A hook to access the value of the `ReactReduxContext`. This is a low-level\n * hook that you should usually not need to call directly.\n *\n * @returns {any} the value of the `ReactReduxContext`\n *\n * @example\n *\n * import React from 'react'\n * import { useReduxContext } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const { store } = useReduxContext()\n * return <div>{store.getState()}</div>\n * }\n */\n\n\nconst useReduxContext = /*#__PURE__*/createReduxContextHook();\nexports.useReduxContext = useReduxContext;","\"use strict\";\n\nexports.__esModule = true;\nexports.createSelectorHook = createSelectorHook;\nexports.useSelector = exports.initializeUseSelector = void 0;\n\nvar _react = require(\"react\");\n\nvar _useReduxContext = require(\"./useReduxContext\");\n\nvar _Context = require(\"../components/Context\");\n\nvar _useSyncExternalStore = require(\"../utils/useSyncExternalStore\");\n\nlet useSyncExternalStoreWithSelector = _useSyncExternalStore.notInitialized;\n\nconst initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nexports.initializeUseSelector = initializeUseSelector;\n\nconst refEquality = (a, b) => a === b;\n/**\n * Hook factory, which creates a `useSelector` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useSelector` hook bound to the specified context.\n */\n\n\nfunction createSelectorHook(context = _Context.ReactReduxContext) {\n const useReduxContext = context === _Context.ReactReduxContext ? _useReduxContext.useReduxContext : (0, _useReduxContext.createReduxContextHook)(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = (0, _react.useRef)(true);\n const wrappedSelector = (0, _react.useCallback)({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.');\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n (0, _react.useDebugValue)(selectedState);\n return selectedState;\n };\n}\n/**\n * A hook to access the redux store's state. This hook takes a selector function\n * as an argument. The selector is called with the store state.\n *\n * This hook takes an optional equality comparison function as the second parameter\n * that allows you to customize the way the selected state is compared to determine\n * whether the component needs to be re-rendered.\n *\n * @param {Function} selector the selector function\n * @param {Function=} equalityFn the function that will be used to determine equality\n *\n * @returns {any} the selected state\n *\n * @example\n *\n * import React from 'react'\n * import { useSelector } from 'react-redux'\n *\n * export const CounterComponent = () => {\n * const counter = useSelector(state => state.counter)\n * return <div>{counter}</div>\n * }\n */\n\n\nconst useSelector = /*#__PURE__*/createSelectorHook();\nexports.useSelector = useSelector;","\"use strict\";\n\nexports.__esModule = true;\nexports.createStoreHook = createStoreHook;\nexports.useStore = void 0;\n\nvar _Context = require(\"../components/Context\");\n\nvar _useReduxContext = require(\"./useReduxContext\");\n\n/**\n * Hook factory, which creates a `useStore` hook bound to a given context.\n *\n * @param {React.Context} [context=ReactReduxContext] Context passed to your `<Provider>`.\n * @returns {Function} A `useStore` hook bound to the specified context.\n */\nfunction createStoreHook(context = _Context.ReactReduxContext) {\n const useReduxContext = // @ts-ignore\n context === _Context.ReactReduxContext ? _useReduxContext.useReduxContext : // @ts-ignore\n (0, _useReduxContext.createReduxContextHook)(context);\n return function useStore() {\n const {\n store\n } = useReduxContext(); // @ts-ignore\n\n return store;\n };\n}\n/**\n * A hook to access the redux store.\n *\n * @returns {any} the redux store\n *\n * @example\n *\n * import React from 'react'\n * import { useStore } from 'react-redux'\n *\n * export const ExampleComponent = () => {\n * const store = useStore()\n * return <div>{store.getState()}</div>\n * }\n */\n\n\nconst useStore = /*#__PURE__*/createStoreHook();\nexports.useStore = useStore;","\"use strict\";\n\nexports.__esModule = true;\nexports.createSubscription = createSubscription;\n\nvar _batch = require(\"./batch\");\n\nfunction createListenerCollection() {\n const batch = (0, _batch.getBatch)();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\n\nfunction createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners;\n\n function addNestedSub(listener) {\n trySubscribe();\n return listeners.subscribe(listener);\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return Boolean(unsubscribe);\n }\n\n function trySubscribe() {\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n if (unsubscribe) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe,\n tryUnsubscribe,\n getListeners: () => listeners\n };\n return subscription;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.getBatch = exports.setBatch = void 0;\n\n// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nconst setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\n\nexports.setBatch = setBatch;\n\nconst getBatch = () => batch;\n\nexports.getBatch = getBatch;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = bindActionCreators;\n\nfunction bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n\n return boundActionCreators;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = isPlainObject;\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n let proto = Object.getPrototypeOf(obj);\n if (proto === null) return true;\n let baseProto = proto;\n\n while (Object.getPrototypeOf(baseProto) !== null) {\n baseProto = Object.getPrototypeOf(baseProto);\n }\n\n return proto === baseProto;\n}","\"use strict\";\n\nexports.__esModule = true;\nObject.defineProperty(exports, \"unstable_batchedUpdates\", {\n enumerable: true,\n get: function () {\n return _reactDom.unstable_batchedUpdates;\n }\n});\n\nvar _reactDom = require(\"react-dom\");","\"use strict\";\n\nexports.__esModule = true;\nexports.default = shallowEqual;\n\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.useIsomorphicLayoutEffect = exports.canUseDOM = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\nconst canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexports.canUseDOM = canUseDOM;\nconst useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;\nexports.useIsomorphicLayoutEffect = useIsomorphicLayoutEffect;","\"use strict\";\n\nexports.__esModule = true;\nexports.notInitialized = void 0;\n\nconst notInitialized = () => {\n throw new Error('uSES not initialized!');\n};\n\nexports.notInitialized = notInitialized;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = verifyPlainObject;\n\nvar _isPlainObject = _interopRequireDefault(require(\"./isPlainObject\"));\n\nvar _warning = _interopRequireDefault(require(\"./warning\"));\n\nfunction verifyPlainObject(value, displayName, methodName) {\n if (!(0, _isPlainObject.default)(value)) {\n (0, _warning.default)(`${methodName}() in ${displayName} must return a plain object. Instead received ${value}.`);\n }\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = warning;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n /* eslint-disable no-empty */\n } catch (e) {}\n /* eslint-enable no-empty */\n\n}","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","'use strict';\n\nvar _extends = require('@babel/runtime/helpers/extends');\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _classCallCheck = require('@babel/runtime/helpers/classCallCheck');\nvar _createClass = require('@babel/runtime/helpers/createClass');\nvar _inherits = require('@babel/runtime/helpers/inherits');\nvar _createSuper = require('@babel/runtime/helpers/createSuper');\nvar _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');\nvar React = require('react');\nvar index = require('./index-b678006b.cjs.dev.js');\nvar react = require('@emotion/react');\nvar memoizeOne = require('memoize-one');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar memoizeOne__default = /*#__PURE__*/_interopDefault(memoizeOne);\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$2() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref = process.env.NODE_ENV === \"production\" ? {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} : {\n name: \"1f43avz-a11yText-A11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap;label:A11yText;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkExMXlUZXh0LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNSSIsImZpbGUiOiJBMTF5VGV4dC50c3giLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGpzeCBqc3ggKi9cbmltcG9ydCB7IGpzeCB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLy8gQXNzaXN0aXZlIHRleHQgdG8gZGVzY3JpYmUgdmlzdWFsIGVsZW1lbnRzLiBIaWRkZW4gZm9yIHNpZ2h0ZWQgdXNlcnMuXG5jb25zdCBBMTF5VGV4dCA9IChwcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydzcGFuJ10pID0+IChcbiAgPHNwYW5cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAnYTExeVRleHQnLFxuICAgICAgekluZGV4OiA5OTk5LFxuICAgICAgYm9yZGVyOiAwLFxuICAgICAgY2xpcDogJ3JlY3QoMXB4LCAxcHgsIDFweCwgMXB4KScsXG4gICAgICBoZWlnaHQ6IDEsXG4gICAgICB3aWR0aDogMSxcbiAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgIH19XG4gICAgey4uLnByb3BzfVxuICAvPlxuKTtcblxuZXhwb3J0IGRlZmF1bHQgQTExeVRleHQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$2\n};\nvar A11yText = function A11yText(props) {\n return react.jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\nvar A11yText$1 = A11yText;\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n case 'clear':\n return 'All selected options have been cleared.';\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live'];\n\n // Update aria live message configuration when prop changes\n var messages = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]);\n\n // Update aria live selected option when prop changes\n var ariaSelected = React.useMemo(function () {\n var message = '';\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value;\n // select-option when !isMulti does not return option so we assume selected option is value\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n // If there is just one item from the action then get its label\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : '';\n\n // If there are multiple items from the action then return an array of labels\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n var onChangeProps = _objectSpread({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n message = messages.onChange(onChangeProps);\n }\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = React.useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: focusableOptions,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue]);\n var ariaResults = React.useMemo(function () {\n var resultsMsg = '';\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = React.useMemo(function () {\n var guidanceMsg = '';\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n var ScreenReaderText = react.jsx(React.Fragment, null, react.jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), react.jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext));\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n return react.jsx(React.Fragment, null, react.jsx(A11yText$1, {\n id: id\n }, isInitialFocus && ScreenReaderText), react.jsx(A11yText$1, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\nvar LiveRegion$1 = LiveRegion;\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne__default[\"default\"](stripDiacritics);\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n // Remove animation props not meant for HTML elements\n var filteredProps = index.removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return react.jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/react.css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:DummyInput;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR1bW15SW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCTSIsImZpbGUiOiJEdW1teUlucHV0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgcmVtb3ZlUHJvcHMgfSBmcm9tICcuLi91dGlscyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIER1bW15SW5wdXQoe1xuICBpbm5lclJlZixcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snaW5wdXQnXSAmIHtcbiAgcmVhZG9ubHkgaW5uZXJSZWY6IFJlZjxIVE1MSW5wdXRFbGVtZW50Pjtcbn0pIHtcbiAgLy8gUmVtb3ZlIGFuaW1hdGlvbiBwcm9wcyBub3QgbWVhbnQgZm9yIEhUTUwgZWxlbWVudHNcbiAgY29uc3QgZmlsdGVyZWRQcm9wcyA9IHJlbW92ZVByb3BzKFxuICAgIHByb3BzLFxuICAgICdvbkV4aXRlZCcsXG4gICAgJ2luJyxcbiAgICAnZW50ZXInLFxuICAgICdleGl0JyxcbiAgICAnYXBwZWFyJ1xuICApO1xuXG4gIHJldHVybiAoXG4gICAgPGlucHV0XG4gICAgICByZWY9e2lubmVyUmVmfVxuICAgICAgey4uLmZpbHRlcmVkUHJvcHN9XG4gICAgICBjc3M9e3tcbiAgICAgICAgbGFiZWw6ICdkdW1teUlucHV0JyxcbiAgICAgICAgLy8gZ2V0IHJpZCBvZiBhbnkgZGVmYXVsdCBzdHlsZXNcbiAgICAgICAgYmFja2dyb3VuZDogMCxcbiAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHRoaXMgaGlkZXMgdGhlIGZsYXNoaW5nIGN1cnNvclxuICAgICAgICBjYXJldENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBmb250U2l6ZTogJ2luaGVyaXQnLFxuICAgICAgICBncmlkQXJlYTogJzEgLyAxIC8gMiAvIDMnLFxuICAgICAgICBvdXRsaW5lOiAwLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICAvLyBpbXBvcnRhbnQhIHdpdGhvdXQgYHdpZHRoYCBicm93c2VycyB3b24ndCBhbGxvdyBmb2N1c1xuICAgICAgICB3aWR0aDogMSxcblxuICAgICAgICAvLyByZW1vdmUgY3Vyc29yIG9uIGRlc2t0b3BcbiAgICAgICAgY29sb3I6ICd0cmFuc3BhcmVudCcsXG5cbiAgICAgICAgLy8gcmVtb3ZlIGN1cnNvciBvbiBtb2JpbGUgd2hpbHN0IG1haW50YWluaW5nIFwic2Nyb2xsIGludG8gdmlld1wiIGJlaGF2aW91clxuICAgICAgICBsZWZ0OiAtMTAwLFxuICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICBwb3NpdGlvbjogJ3JlbGF0aXZlJyxcbiAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGUoLjAxKScsXG4gICAgICB9fVxuICAgIC8+XG4gICk7XG59XG4iXX0= */\")\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = React.useRef(false);\n var isTop = React.useRef(false);\n var touchStart = React.useRef(0);\n var scrollTarget = React.useRef(null);\n var handleEventDelta = React.useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = React.useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = React.useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = React.useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = React.useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = index.supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = React.useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n React.useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = React.useRef({});\n var scrollTarget = React.useRef(null);\n var addScrollLock = React.useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = React.useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n React.useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__$1() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar blurSelectInput = function blurSelectInput(event) {\n var element = event.target;\n return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();\n};\nvar _ref2$1 = process.env.NODE_ENV === \"production\" ? {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} : {\n name: \"bp8cua-ScrollManager\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0;label:ScrollManager;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlNjcm9sbE1hbmFnZXIudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9EVSIsImZpbGUiOiJTY3JvbGxNYW5hZ2VyLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsganN4IH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuaW1wb3J0IHsgRnJhZ21lbnQsIFJlYWN0RWxlbWVudCwgUmVmQ2FsbGJhY2ssIE1vdXNlRXZlbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlU2Nyb2xsQ2FwdHVyZSBmcm9tICcuL3VzZVNjcm9sbENhcHR1cmUnO1xuaW1wb3J0IHVzZVNjcm9sbExvY2sgZnJvbSAnLi91c2VTY3JvbGxMb2NrJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgcmVhZG9ubHkgY2hpbGRyZW46IChyZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PikgPT4gUmVhY3RFbGVtZW50O1xuICByZWFkb25seSBsb2NrRW5hYmxlZDogYm9vbGVhbjtcbiAgcmVhZG9ubHkgY2FwdHVyZUVuYWJsZWQ6IGJvb2xlYW47XG4gIHJlYWRvbmx5IG9uQm90dG9tQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Cb3R0b21MZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG4gIHJlYWRvbmx5IG9uVG9wQXJyaXZlPzogKGV2ZW50OiBXaGVlbEV2ZW50IHwgVG91Y2hFdmVudCkgPT4gdm9pZDtcbiAgcmVhZG9ubHkgb25Ub3BMZWF2ZT86IChldmVudDogV2hlZWxFdmVudCB8IFRvdWNoRXZlbnQpID0+IHZvaWQ7XG59XG5cbmNvbnN0IGJsdXJTZWxlY3RJbnB1dCA9IChldmVudDogTW91c2VFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgY29uc3QgZWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgcmV0dXJuIChcbiAgICBlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgIChlbGVtZW50Lm93bmVyRG9jdW1lbnQuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuYmx1cigpXG4gICk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxNYW5hZ2VyKHtcbiAgY2hpbGRyZW4sXG4gIGxvY2tFbmFibGVkLFxuICBjYXB0dXJlRW5hYmxlZCA9IHRydWUsXG4gIG9uQm90dG9tQXJyaXZlLFxuICBvbkJvdHRvbUxlYXZlLFxuICBvblRvcEFycml2ZSxcbiAgb25Ub3BMZWF2ZSxcbn06IFByb3BzKSB7XG4gIGNvbnN0IHNldFNjcm9sbENhcHR1cmVUYXJnZXQgPSB1c2VTY3JvbGxDYXB0dXJlKHtcbiAgICBpc0VuYWJsZWQ6IGNhcHR1cmVFbmFibGVkLFxuICAgIG9uQm90dG9tQXJyaXZlLFxuICAgIG9uQm90dG9tTGVhdmUsXG4gICAgb25Ub3BBcnJpdmUsXG4gICAgb25Ub3BMZWF2ZSxcbiAgfSk7XG4gIGNvbnN0IHNldFNjcm9sbExvY2tUYXJnZXQgPSB1c2VTY3JvbGxMb2NrKHsgaXNFbmFibGVkOiBsb2NrRW5hYmxlZCB9KTtcblxuICBjb25zdCB0YXJnZXRSZWY6IFJlZkNhbGxiYWNrPEhUTUxFbGVtZW50PiA9IChlbGVtZW50KSA9PiB7XG4gICAgc2V0U2Nyb2xsQ2FwdHVyZVRhcmdldChlbGVtZW50KTtcbiAgICBzZXRTY3JvbGxMb2NrVGFyZ2V0KGVsZW1lbnQpO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPEZyYWdtZW50PlxuICAgICAge2xvY2tFbmFibGVkICYmIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIG9uQ2xpY2s9e2JsdXJTZWxlY3RJbnB1dH1cbiAgICAgICAgICBjc3M9e3sgcG9zaXRpb246ICdmaXhlZCcsIGxlZnQ6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAsIHRvcDogMCB9fVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtjaGlsZHJlbih0YXJnZXRSZWYpfVxuICAgIDwvRnJhZ21lbnQ+XG4gICk7XG59XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__$1\n};\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n return react.jsx(React.Fragment, null, lockEnabled && react.jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2$1\n }), children(targetRef));\n}\n\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"1a0ro4n-requiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%\"\n} : {\n name: \"5kkxb2-requiredInput-RequiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%;label:RequiredInput;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlJlcXVpcmVkSW5wdXQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNJIiwiZmlsZSI6IlJlcXVpcmVkSW5wdXQudHN4Iiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBqc3gganN4ICovXG5pbXBvcnQgeyBGb2N1c0V2ZW50SGFuZGxlciwgRnVuY3Rpb25Db21wb25lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBqc3ggfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmNvbnN0IFJlcXVpcmVkSW5wdXQ6IEZ1bmN0aW9uQ29tcG9uZW50PHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb25Gb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD47XG59PiA9ICh7IG5hbWUsIG9uRm9jdXMgfSkgPT4gKFxuICA8aW5wdXRcbiAgICByZXF1aXJlZFxuICAgIG5hbWU9e25hbWV9XG4gICAgdGFiSW5kZXg9ey0xfVxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICBjc3M9e3tcbiAgICAgIGxhYmVsOiAncmVxdWlyZWRJbnB1dCcsXG4gICAgICBvcGFjaXR5OiAwLFxuICAgICAgcG9pbnRlckV2ZW50czogJ25vbmUnLFxuICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICBib3R0b206IDAsXG4gICAgICBsZWZ0OiAwLFxuICAgICAgcmlnaHQ6IDAsXG4gICAgICB3aWR0aDogJzEwMCUnLFxuICAgIH19XG4gICAgLy8gUHJldmVudCBgU3dpdGNoaW5nIGZyb20gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWRgIGVycm9yXG4gICAgdmFsdWU9XCJcIlxuICAgIG9uQ2hhbmdlPXsoKSA9PiB7fX1cbiAgLz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFJlcXVpcmVkSW5wdXQ7XG4iXX0= */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar RequiredInput = function RequiredInput(_ref) {\n var name = _ref.name,\n onFocus = _ref.onFocus;\n return react.jsx(\"input\", {\n required: true,\n name: name,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n onFocus: onFocus,\n css: _ref2\n // Prevent `Switching from uncontrolled to controlled` error\n ,\n value: \"\",\n onChange: function onChange() {}\n });\n};\nvar RequiredInput$1 = RequiredInput;\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: index.clearIndicatorCSS,\n container: index.containerCSS,\n control: index.css,\n dropdownIndicator: index.dropdownIndicatorCSS,\n group: index.groupCSS,\n groupHeading: index.groupHeadingCSS,\n indicatorsContainer: index.indicatorsContainerCSS,\n indicatorSeparator: index.indicatorSeparatorCSS,\n input: index.inputCSS,\n loadingIndicator: index.loadingIndicatorCSS,\n loadingMessage: index.loadingMessageCSS,\n menu: index.menuCSS,\n menuList: index.menuListCSS,\n menuPortal: index.menuPortalCSS,\n multiValue: index.multiValueCSS,\n multiValueLabel: index.multiValueLabelCSS,\n multiValueRemove: index.multiValueRemoveCSS,\n noOptionsMessage: index.noOptionsMessageCSS,\n option: index.optionCSS,\n placeholder: index.placeholderCSS,\n singleValue: index.css$1,\n valueContainer: index.valueContainerCSS\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // initialize with source styles\n var styles = _objectSpread({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: index.isTouchCapable(),\n captureMenuScroll: !index.isTouchCapable(),\n classNames: {},\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !index.isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true,\n unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n var isSelected = _isOptionSelected(props, option, selectValue);\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(index.notNullish);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n return optionsAccumulator;\n }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n}\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n var _super = _createSuper(Select);\n // Misc. Instance Properties\n // ------------------------------\n\n // TODO\n\n // Refs\n // ------------------------------\n\n // Lifecycle\n // ------------------------------\n\n function Select(_props) {\n var _this;\n _classCallCheck(this, Select);\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n _this.focusedOptionRef = null;\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n _this.menuListRef = null;\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n _this.inputRef = null;\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n _this.ariaOnChange(newValue, actionMeta);\n onChange(newValue, actionMeta);\n };\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n _this.setValue(index.multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(index.multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(index.singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(index.singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n return;\n }\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var candidate = _this.getOptionValue(removedValue);\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = index.valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this.focusInput();\n };\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n _this.onChange(index.valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = index.valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return index.classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n _this.getStyles = function (key, props) {\n var unstyled = _this.props.unstyled;\n var base = defaultStyles[key](props, unstyled);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n _this.getClassNames = function (key, props) {\n var _this$props$className, _this$props$className2;\n return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n };\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n _this.getComponents = function () {\n return index.defaultComponents(_this.props);\n };\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread({\n value: value\n }, actionMeta)\n });\n };\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this.focusInput();\n };\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n var openMenuOnClick = _this.props.openMenuOnClick;\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n _this.focusInput();\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n event.preventDefault();\n };\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this.clearValue();\n event.preventDefault();\n _this.openAfterFocus = false;\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && index.isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n }\n\n // reset move vars\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onControlMouseDown(event);\n };\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onClearIndicatorMouseDown(event);\n };\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onDropdownIndicatorMouseDown(event);\n };\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n _this.openAfterFocus = false;\n };\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n return;\n }\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n _this.onMenuClose();\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n _this.setState({\n focusedOption: focusedOption\n });\n };\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n _this.onValueInputFocus = function (e) {\n e.preventDefault();\n e.stopPropagation();\n _this.focus();\n };\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n break;\n case 'Tab':\n if (_this.isComposing) return;\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this.selectOption(focusedOption);\n break;\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n _this.selectOption(focusedOption);\n break;\n }\n return;\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = index.cleanValue(_props.value);\n\n // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n if (_props.menuIsOpen && _this.state.selectValue.length) {\n var focusableOptions = _this.buildFocusableOptions();\n var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n _this.state.focusedOption = focusableOptions[optionIndex];\n }\n return _this;\n }\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n if (this.props.autoFocus) {\n this.focusInput();\n }\n\n // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n index.scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programmatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: true\n });\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n index.scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n\n // ==============================\n // Consumer Handlers\n // ==============================\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n // only scroll if the menu isn't already open\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue;\n\n // Only multiselects support value focusing\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n }\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n }\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value:\n // ==============================\n // Getters\n // ==============================\n\n function getTheme() {\n // Use the default theme if there are no customisations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _objectSpread(_objectSpread({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getClassNames = this.getClassNames,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getClassNames: getClassNames,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n }, {\n key: \"startListeningComposition\",\n value:\n // ==============================\n // Composition Handlers\n // ==============================\n\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value:\n // ==============================\n // Touch Handlers\n // ==============================\n\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value:\n // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen,\n required = _this$props8.required;\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input');\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = _objectSpread(_objectSpread(_objectSpread({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n 'aria-required': required,\n role: 'combobox'\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox'),\n 'aria-owns': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React__namespace.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: index.noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n return /*#__PURE__*/React__namespace.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React__namespace.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React__namespace.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n if (inputValue) {\n return null;\n }\n var singleValue = selectValue[0];\n return /*#__PURE__*/React__namespace.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React__namespace.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React__namespace.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n var menuUI;\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React__namespace.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React__namespace.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React__namespace.createElement(NoOptionsMessage, commonProps, _message);\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React__namespace.createElement(index.MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React__namespace.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React__namespace.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React__namespace.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n });\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React__namespace.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name,\n required = _this$props13.required;\n var selectValue = this.state.selectValue;\n if (required && !this.hasValue() && !isDisabled) {\n return /*#__PURE__*/React__namespace.createElement(RequiredInput$1, {\n name: name,\n onFocus: this.onValueInputFocus\n });\n }\n if (!name || isDisabled) return;\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: \"\"\n });\n return /*#__PURE__*/React__namespace.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React__namespace.createElement(LiveRegion$1, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React__namespace.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React__namespace.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React__namespace.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React__namespace.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = index.cleanValue(value);\n var newMenuOptionsState = {};\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n }\n // some updates should toggle the state of the input visibility\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: index.valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n }\n\n // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n return _objectSpread(_objectSpread(_objectSpread({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n return Select;\n}(React.Component);\nSelect.defaultProps = defaultProps;\n\nexports.Select = Select;\nexports.createFilter = createFilter;\nexports.defaultProps = defaultProps;\nexports.defaultTheme = defaultTheme;\nexports.getOptionLabel = getOptionLabel$1;\nexports.getOptionValue = getOptionValue$1;\nexports.mergeStyles = mergeStyles;\n","'use strict';\n\nvar _extends = require('@babel/runtime/helpers/extends');\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _classCallCheck = require('@babel/runtime/helpers/classCallCheck');\nvar _createClass = require('@babel/runtime/helpers/createClass');\nvar _inherits = require('@babel/runtime/helpers/inherits');\nvar _createSuper = require('@babel/runtime/helpers/createSuper');\nvar _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');\nvar React = require('react');\nvar index = require('./index-7802bc67.cjs.prod.js');\nvar react = require('@emotion/react');\nvar memoizeOne = require('memoize-one');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar memoizeOne__default = /*#__PURE__*/_interopDefault(memoizeOne);\n\n// Assistive text to describe visual elements. Hidden for sighted users.\nvar _ref = {\n name: \"7pg0cj-a11yText\",\n styles: \"label:a11yText;z-index:9999;border:0;clip:rect(1px, 1px, 1px, 1px);height:1px;width:1px;position:absolute;overflow:hidden;padding:0;white-space:nowrap\"\n} ;\nvar A11yText = function A11yText(props) {\n return react.jsx(\"span\", _extends({\n css: _ref\n }, props));\n};\nvar A11yText$1 = A11yText;\n\nvar defaultAriaLiveMessages = {\n guidance: function guidance(props) {\n var isSearchable = props.isSearchable,\n isMulti = props.isMulti,\n isDisabled = props.isDisabled,\n tabSelectsValue = props.tabSelectsValue,\n context = props.context;\n switch (context) {\n case 'menu':\n return \"Use Up and Down to choose options\".concat(isDisabled ? '' : ', press Enter to select the currently focused option', \", press Escape to exit the menu\").concat(tabSelectsValue ? ', press Tab to select the option and exit the menu' : '', \".\");\n case 'input':\n return \"\".concat(props['aria-label'] || 'Select', \" is focused \").concat(isSearchable ? ',type to refine list' : '', \", press Down to open the menu, \").concat(isMulti ? ' press left to focus selected values' : '');\n case 'value':\n return 'Use left and right to toggle between focused values, press Backspace to remove the currently focused value';\n default:\n return '';\n }\n },\n onChange: function onChange(props) {\n var action = props.action,\n _props$label = props.label,\n label = _props$label === void 0 ? '' : _props$label,\n labels = props.labels,\n isDisabled = props.isDisabled;\n switch (action) {\n case 'deselect-option':\n case 'pop-value':\n case 'remove-value':\n return \"option \".concat(label, \", deselected.\");\n case 'clear':\n return 'All selected options have been cleared.';\n case 'initial-input-focus':\n return \"option\".concat(labels.length > 1 ? 's' : '', \" \").concat(labels.join(','), \", selected.\");\n case 'select-option':\n return isDisabled ? \"option \".concat(label, \" is disabled. Select another option.\") : \"option \".concat(label, \", selected.\");\n default:\n return '';\n }\n },\n onFocus: function onFocus(props) {\n var context = props.context,\n focused = props.focused,\n options = props.options,\n _props$label2 = props.label,\n label = _props$label2 === void 0 ? '' : _props$label2,\n selectValue = props.selectValue,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected;\n var getArrayIndex = function getArrayIndex(arr, item) {\n return arr && arr.length ? \"\".concat(arr.indexOf(item) + 1, \" of \").concat(arr.length) : '';\n };\n if (context === 'value' && selectValue) {\n return \"value \".concat(label, \" focused, \").concat(getArrayIndex(selectValue, focused), \".\");\n }\n if (context === 'menu') {\n var disabled = isDisabled ? ' disabled' : '';\n var status = \"\".concat(isSelected ? 'selected' : 'focused').concat(disabled);\n return \"option \".concat(label, \" \").concat(status, \", \").concat(getArrayIndex(options, focused), \".\");\n }\n return '';\n },\n onFilter: function onFilter(props) {\n var inputValue = props.inputValue,\n resultsMessage = props.resultsMessage;\n return \"\".concat(resultsMessage).concat(inputValue ? ' for search term ' + inputValue : '', \".\");\n }\n};\n\nvar LiveRegion = function LiveRegion(props) {\n var ariaSelection = props.ariaSelection,\n focusedOption = props.focusedOption,\n focusedValue = props.focusedValue,\n focusableOptions = props.focusableOptions,\n isFocused = props.isFocused,\n selectValue = props.selectValue,\n selectProps = props.selectProps,\n id = props.id;\n var ariaLiveMessages = selectProps.ariaLiveMessages,\n getOptionLabel = selectProps.getOptionLabel,\n inputValue = selectProps.inputValue,\n isMulti = selectProps.isMulti,\n isOptionDisabled = selectProps.isOptionDisabled,\n isSearchable = selectProps.isSearchable,\n menuIsOpen = selectProps.menuIsOpen,\n options = selectProps.options,\n screenReaderStatus = selectProps.screenReaderStatus,\n tabSelectsValue = selectProps.tabSelectsValue;\n var ariaLabel = selectProps['aria-label'];\n var ariaLive = selectProps['aria-live'];\n\n // Update aria live message configuration when prop changes\n var messages = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, defaultAriaLiveMessages), ariaLiveMessages || {});\n }, [ariaLiveMessages]);\n\n // Update aria live selected option when prop changes\n var ariaSelected = React.useMemo(function () {\n var message = '';\n if (ariaSelection && messages.onChange) {\n var option = ariaSelection.option,\n selectedOptions = ariaSelection.options,\n removedValue = ariaSelection.removedValue,\n removedValues = ariaSelection.removedValues,\n value = ariaSelection.value;\n // select-option when !isMulti does not return option so we assume selected option is value\n var asOption = function asOption(val) {\n return !Array.isArray(val) ? val : null;\n };\n\n // If there is just one item from the action then get its label\n var selected = removedValue || option || asOption(value);\n var label = selected ? getOptionLabel(selected) : '';\n\n // If there are multiple items from the action then return an array of labels\n var multiSelected = selectedOptions || removedValues || undefined;\n var labels = multiSelected ? multiSelected.map(getOptionLabel) : [];\n var onChangeProps = _objectSpread({\n // multiSelected items are usually items that have already been selected\n // or set by the user as a default value so we assume they are not disabled\n isDisabled: selected && isOptionDisabled(selected, selectValue),\n label: label,\n labels: labels\n }, ariaSelection);\n message = messages.onChange(onChangeProps);\n }\n return message;\n }, [ariaSelection, messages, isOptionDisabled, selectValue, getOptionLabel]);\n var ariaFocused = React.useMemo(function () {\n var focusMsg = '';\n var focused = focusedOption || focusedValue;\n var isSelected = !!(focusedOption && selectValue && selectValue.includes(focusedOption));\n if (focused && messages.onFocus) {\n var onFocusProps = {\n focused: focused,\n label: getOptionLabel(focused),\n isDisabled: isOptionDisabled(focused, selectValue),\n isSelected: isSelected,\n options: focusableOptions,\n context: focused === focusedOption ? 'menu' : 'value',\n selectValue: selectValue\n };\n focusMsg = messages.onFocus(onFocusProps);\n }\n return focusMsg;\n }, [focusedOption, focusedValue, getOptionLabel, isOptionDisabled, messages, focusableOptions, selectValue]);\n var ariaResults = React.useMemo(function () {\n var resultsMsg = '';\n if (menuIsOpen && options.length && messages.onFilter) {\n var resultsMessage = screenReaderStatus({\n count: focusableOptions.length\n });\n resultsMsg = messages.onFilter({\n inputValue: inputValue,\n resultsMessage: resultsMessage\n });\n }\n return resultsMsg;\n }, [focusableOptions, inputValue, menuIsOpen, messages, options, screenReaderStatus]);\n var ariaGuidance = React.useMemo(function () {\n var guidanceMsg = '';\n if (messages.guidance) {\n var context = focusedValue ? 'value' : menuIsOpen ? 'menu' : 'input';\n guidanceMsg = messages.guidance({\n 'aria-label': ariaLabel,\n context: context,\n isDisabled: focusedOption && isOptionDisabled(focusedOption, selectValue),\n isMulti: isMulti,\n isSearchable: isSearchable,\n tabSelectsValue: tabSelectsValue\n });\n }\n return guidanceMsg;\n }, [ariaLabel, focusedOption, focusedValue, isMulti, isOptionDisabled, isSearchable, menuIsOpen, messages, selectValue, tabSelectsValue]);\n var ariaContext = \"\".concat(ariaFocused, \" \").concat(ariaResults, \" \").concat(ariaGuidance);\n var ScreenReaderText = react.jsx(React.Fragment, null, react.jsx(\"span\", {\n id: \"aria-selection\"\n }, ariaSelected), react.jsx(\"span\", {\n id: \"aria-context\"\n }, ariaContext));\n var isInitialFocus = (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus';\n return react.jsx(React.Fragment, null, react.jsx(A11yText$1, {\n id: id\n }, isInitialFocus && ScreenReaderText), react.jsx(A11yText$1, {\n \"aria-live\": ariaLive,\n \"aria-atomic\": \"false\",\n \"aria-relevant\": \"additions text\"\n }, isFocused && !isInitialFocus && ScreenReaderText));\n};\nvar LiveRegion$1 = LiveRegion;\n\nvar diacritics = [{\n base: 'A',\n letters: \"A\\u24B6\\uFF21\\xC0\\xC1\\xC2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\xC3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\xC4\\u01DE\\u1EA2\\xC5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\"\n}, {\n base: 'AA',\n letters: \"\\uA732\"\n}, {\n base: 'AE',\n letters: \"\\xC6\\u01FC\\u01E2\"\n}, {\n base: 'AO',\n letters: \"\\uA734\"\n}, {\n base: 'AU',\n letters: \"\\uA736\"\n}, {\n base: 'AV',\n letters: \"\\uA738\\uA73A\"\n}, {\n base: 'AY',\n letters: \"\\uA73C\"\n}, {\n base: 'B',\n letters: \"B\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0182\\u0181\"\n}, {\n base: 'C',\n letters: \"C\\u24B8\\uFF23\\u0106\\u0108\\u010A\\u010C\\xC7\\u1E08\\u0187\\u023B\\uA73E\"\n}, {\n base: 'D',\n letters: \"D\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018B\\u018A\\u0189\\uA779\"\n}, {\n base: 'DZ',\n letters: \"\\u01F1\\u01C4\"\n}, {\n base: 'Dz',\n letters: \"\\u01F2\\u01C5\"\n}, {\n base: 'E',\n letters: \"E\\u24BA\\uFF25\\xC8\\xC9\\xCA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\xCB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\"\n}, {\n base: 'F',\n letters: \"F\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\"\n}, {\n base: 'G',\n letters: \"G\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\"\n}, {\n base: 'H',\n letters: \"H\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\"\n}, {\n base: 'I',\n letters: \"I\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\"\n}, {\n base: 'J',\n letters: \"J\\u24BF\\uFF2A\\u0134\\u0248\"\n}, {\n base: 'K',\n letters: \"K\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\"\n}, {\n base: 'L',\n letters: \"L\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\"\n}, {\n base: 'LJ',\n letters: \"\\u01C7\"\n}, {\n base: 'Lj',\n letters: \"\\u01C8\"\n}, {\n base: 'M',\n letters: \"M\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\"\n}, {\n base: 'N',\n letters: \"N\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u0220\\u019D\\uA790\\uA7A4\"\n}, {\n base: 'NJ',\n letters: \"\\u01CA\"\n}, {\n base: 'Nj',\n letters: \"\\u01CB\"\n}, {\n base: 'O',\n letters: \"O\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\"\n}, {\n base: 'OI',\n letters: \"\\u01A2\"\n}, {\n base: 'OO',\n letters: \"\\uA74E\"\n}, {\n base: 'OU',\n letters: \"\\u0222\"\n}, {\n base: 'P',\n letters: \"P\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\"\n}, {\n base: 'Q',\n letters: \"Q\\u24C6\\uFF31\\uA756\\uA758\\u024A\"\n}, {\n base: 'R',\n letters: \"R\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\"\n}, {\n base: 'S',\n letters: \"S\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\"\n}, {\n base: 'T',\n letters: \"T\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\"\n}, {\n base: 'TZ',\n letters: \"\\uA728\"\n}, {\n base: 'U',\n letters: \"U\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\"\n}, {\n base: 'V',\n letters: \"V\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\"\n}, {\n base: 'VY',\n letters: \"\\uA760\"\n}, {\n base: 'W',\n letters: \"W\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\"\n}, {\n base: 'X',\n letters: \"X\\u24CD\\uFF38\\u1E8A\\u1E8C\"\n}, {\n base: 'Y',\n letters: \"Y\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\"\n}, {\n base: 'Z',\n letters: \"Z\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\"\n}, {\n base: 'a',\n letters: \"a\\u24D0\\uFF41\\u1E9A\\xE0\\xE1\\xE2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\xE3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\xE4\\u01DF\\u1EA3\\xE5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\"\n}, {\n base: 'aa',\n letters: \"\\uA733\"\n}, {\n base: 'ae',\n letters: \"\\xE6\\u01FD\\u01E3\"\n}, {\n base: 'ao',\n letters: \"\\uA735\"\n}, {\n base: 'au',\n letters: \"\\uA737\"\n}, {\n base: 'av',\n letters: \"\\uA739\\uA73B\"\n}, {\n base: 'ay',\n letters: \"\\uA73D\"\n}, {\n base: 'b',\n letters: \"b\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\"\n}, {\n base: 'c',\n letters: \"c\\u24D2\\uFF43\\u0107\\u0109\\u010B\\u010D\\xE7\\u1E09\\u0188\\u023C\\uA73F\\u2184\"\n}, {\n base: 'd',\n letters: \"d\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\uA77A\"\n}, {\n base: 'dz',\n letters: \"\\u01F3\\u01C6\"\n}, {\n base: 'e',\n letters: \"e\\u24D4\\uFF45\\xE8\\xE9\\xEA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\xEB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u025B\\u01DD\"\n}, {\n base: 'f',\n letters: \"f\\u24D5\\uFF46\\u1E1F\\u0192\\uA77C\"\n}, {\n base: 'g',\n letters: \"g\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\u1D79\\uA77F\"\n}, {\n base: 'h',\n letters: \"h\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\"\n}, {\n base: 'hv',\n letters: \"\\u0195\"\n}, {\n base: 'i',\n letters: \"i\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\"\n}, {\n base: 'j',\n letters: \"j\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\"\n}, {\n base: 'k',\n letters: \"k\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\"\n}, {\n base: 'l',\n letters: \"l\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\"\n}, {\n base: 'lj',\n letters: \"\\u01C9\"\n}, {\n base: 'm',\n letters: \"m\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\"\n}, {\n base: 'n',\n letters: \"n\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\"\n}, {\n base: 'nj',\n letters: \"\\u01CC\"\n}, {\n base: 'o',\n letters: \"o\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\u0254\\uA74B\\uA74D\\u0275\"\n}, {\n base: 'oi',\n letters: \"\\u01A3\"\n}, {\n base: 'ou',\n letters: \"\\u0223\"\n}, {\n base: 'oo',\n letters: \"\\uA74F\"\n}, {\n base: 'p',\n letters: \"p\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\"\n}, {\n base: 'q',\n letters: \"q\\u24E0\\uFF51\\u024B\\uA757\\uA759\"\n}, {\n base: 'r',\n letters: \"r\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\"\n}, {\n base: 's',\n letters: \"s\\u24E2\\uFF53\\xDF\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\"\n}, {\n base: 't',\n letters: \"t\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\"\n}, {\n base: 'tz',\n letters: \"\\uA729\"\n}, {\n base: 'u',\n letters: \"u\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\"\n}, {\n base: 'v',\n letters: \"v\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\"\n}, {\n base: 'vy',\n letters: \"\\uA761\"\n}, {\n base: 'w',\n letters: \"w\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\"\n}, {\n base: 'x',\n letters: \"x\\u24E7\\uFF58\\u1E8B\\u1E8D\"\n}, {\n base: 'y',\n letters: \"y\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\"\n}, {\n base: 'z',\n letters: \"z\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\"\n}];\nvar anyDiacritic = new RegExp('[' + diacritics.map(function (d) {\n return d.letters;\n}).join('') + ']', 'g');\nvar diacriticToBase = {};\nfor (var i = 0; i < diacritics.length; i++) {\n var diacritic = diacritics[i];\n for (var j = 0; j < diacritic.letters.length; j++) {\n diacriticToBase[diacritic.letters[j]] = diacritic.base;\n }\n}\nvar stripDiacritics = function stripDiacritics(str) {\n return str.replace(anyDiacritic, function (match) {\n return diacriticToBase[match];\n });\n};\n\nvar memoizedStripDiacriticsForInput = memoizeOne__default[\"default\"](stripDiacritics);\nvar trimString = function trimString(str) {\n return str.replace(/^\\s+|\\s+$/g, '');\n};\nvar defaultStringify = function defaultStringify(option) {\n return \"\".concat(option.label, \" \").concat(option.value);\n};\nvar createFilter = function createFilter(config) {\n return function (option, rawInput) {\n // eslint-disable-next-line no-underscore-dangle\n if (option.data.__isNew__) return true;\n var _ignoreCase$ignoreAcc = _objectSpread({\n ignoreCase: true,\n ignoreAccents: true,\n stringify: defaultStringify,\n trim: true,\n matchFrom: 'any'\n }, config),\n ignoreCase = _ignoreCase$ignoreAcc.ignoreCase,\n ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents,\n stringify = _ignoreCase$ignoreAcc.stringify,\n trim = _ignoreCase$ignoreAcc.trim,\n matchFrom = _ignoreCase$ignoreAcc.matchFrom;\n var input = trim ? trimString(rawInput) : rawInput;\n var candidate = trim ? trimString(stringify(option)) : stringify(option);\n if (ignoreCase) {\n input = input.toLowerCase();\n candidate = candidate.toLowerCase();\n }\n if (ignoreAccents) {\n input = memoizedStripDiacriticsForInput(input);\n candidate = stripDiacritics(candidate);\n }\n return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1;\n };\n};\n\nvar _excluded = [\"innerRef\"];\nfunction DummyInput(_ref) {\n var innerRef = _ref.innerRef,\n props = _objectWithoutProperties(_ref, _excluded);\n // Remove animation props not meant for HTML elements\n var filteredProps = index.removeProps(props, 'onExited', 'in', 'enter', 'exit', 'appear');\n return react.jsx(\"input\", _extends({\n ref: innerRef\n }, filteredProps, {\n css: /*#__PURE__*/react.css({\n label: 'dummyInput',\n // get rid of any default styles\n background: 0,\n border: 0,\n // important! this hides the flashing cursor\n caretColor: 'transparent',\n fontSize: 'inherit',\n gridArea: '1 / 1 / 2 / 3',\n outline: 0,\n padding: 0,\n // important! without `width` browsers won't allow focus\n width: 1,\n // remove cursor on desktop\n color: 'transparent',\n // remove cursor on mobile whilst maintaining \"scroll into view\" behaviour\n left: -100,\n opacity: 0,\n position: 'relative',\n transform: 'scale(.01)'\n }, \"\" , \"\" )\n }));\n}\n\nvar cancelScroll = function cancelScroll(event) {\n event.preventDefault();\n event.stopPropagation();\n};\nfunction useScrollCapture(_ref) {\n var isEnabled = _ref.isEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var isBottom = React.useRef(false);\n var isTop = React.useRef(false);\n var touchStart = React.useRef(0);\n var scrollTarget = React.useRef(null);\n var handleEventDelta = React.useCallback(function (event, delta) {\n if (scrollTarget.current === null) return;\n var _scrollTarget$current = scrollTarget.current,\n scrollTop = _scrollTarget$current.scrollTop,\n scrollHeight = _scrollTarget$current.scrollHeight,\n clientHeight = _scrollTarget$current.clientHeight;\n var target = scrollTarget.current;\n var isDeltaPositive = delta > 0;\n var availableScroll = scrollHeight - clientHeight - scrollTop;\n var shouldCancelScroll = false;\n\n // reset bottom/top flags\n if (availableScroll > delta && isBottom.current) {\n if (onBottomLeave) onBottomLeave(event);\n isBottom.current = false;\n }\n if (isDeltaPositive && isTop.current) {\n if (onTopLeave) onTopLeave(event);\n isTop.current = false;\n }\n\n // bottom limit\n if (isDeltaPositive && delta > availableScroll) {\n if (onBottomArrive && !isBottom.current) {\n onBottomArrive(event);\n }\n target.scrollTop = scrollHeight;\n shouldCancelScroll = true;\n isBottom.current = true;\n\n // top limit\n } else if (!isDeltaPositive && -delta > scrollTop) {\n if (onTopArrive && !isTop.current) {\n onTopArrive(event);\n }\n target.scrollTop = 0;\n shouldCancelScroll = true;\n isTop.current = true;\n }\n\n // cancel scroll\n if (shouldCancelScroll) {\n cancelScroll(event);\n }\n }, [onBottomArrive, onBottomLeave, onTopArrive, onTopLeave]);\n var onWheel = React.useCallback(function (event) {\n handleEventDelta(event, event.deltaY);\n }, [handleEventDelta]);\n var onTouchStart = React.useCallback(function (event) {\n // set touch start so we can calculate touchmove delta\n touchStart.current = event.changedTouches[0].clientY;\n }, []);\n var onTouchMove = React.useCallback(function (event) {\n var deltaY = touchStart.current - event.changedTouches[0].clientY;\n handleEventDelta(event, deltaY);\n }, [handleEventDelta]);\n var startListening = React.useCallback(function (el) {\n // bail early if no element is available to attach to\n if (!el) return;\n var notPassive = index.supportsPassiveEvents ? {\n passive: false\n } : false;\n el.addEventListener('wheel', onWheel, notPassive);\n el.addEventListener('touchstart', onTouchStart, notPassive);\n el.addEventListener('touchmove', onTouchMove, notPassive);\n }, [onTouchMove, onTouchStart, onWheel]);\n var stopListening = React.useCallback(function (el) {\n // bail early if no element is available to detach from\n if (!el) return;\n el.removeEventListener('wheel', onWheel, false);\n el.removeEventListener('touchstart', onTouchStart, false);\n el.removeEventListener('touchmove', onTouchMove, false);\n }, [onTouchMove, onTouchStart, onWheel]);\n React.useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n startListening(element);\n return function () {\n stopListening(element);\n };\n }, [isEnabled, startListening, stopListening]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar STYLE_KEYS = ['boxSizing', 'height', 'overflow', 'paddingRight', 'position'];\nvar LOCK_STYLES = {\n boxSizing: 'border-box',\n // account for possible declaration `width: 100%;` on body\n overflow: 'hidden',\n position: 'relative',\n height: '100%'\n};\nfunction preventTouchMove(e) {\n e.preventDefault();\n}\nfunction allowTouchMove(e) {\n e.stopPropagation();\n}\nfunction preventInertiaScroll() {\n var top = this.scrollTop;\n var totalScroll = this.scrollHeight;\n var currentScroll = top + this.offsetHeight;\n if (top === 0) {\n this.scrollTop = 1;\n } else if (currentScroll === totalScroll) {\n this.scrollTop = top - 1;\n }\n}\n\n// `ontouchstart` check works on most browsers\n// `maxTouchPoints` works on IE10/11 and Surface\nfunction isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints;\n}\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nvar activeScrollLocks = 0;\nvar listenerOptions = {\n capture: false,\n passive: false\n};\nfunction useScrollLock(_ref) {\n var isEnabled = _ref.isEnabled,\n _ref$accountForScroll = _ref.accountForScrollbars,\n accountForScrollbars = _ref$accountForScroll === void 0 ? true : _ref$accountForScroll;\n var originalStyles = React.useRef({});\n var scrollTarget = React.useRef(null);\n var addScrollLock = React.useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n if (accountForScrollbars) {\n // store any styles already applied to the body\n STYLE_KEYS.forEach(function (key) {\n var val = targetStyle && targetStyle[key];\n originalStyles.current[key] = val;\n });\n }\n\n // apply the lock styles and padding if this is the first scroll lock\n if (accountForScrollbars && activeScrollLocks < 1) {\n var currentPadding = parseInt(originalStyles.current.paddingRight, 10) || 0;\n var clientWidth = document.body ? document.body.clientWidth : 0;\n var adjustedPadding = window.innerWidth - clientWidth + currentPadding || 0;\n Object.keys(LOCK_STYLES).forEach(function (key) {\n var val = LOCK_STYLES[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n if (targetStyle) {\n targetStyle.paddingRight = \"\".concat(adjustedPadding, \"px\");\n }\n }\n\n // account for touch devices\n if (target && isTouchDevice()) {\n // Mobile Safari ignores { overflow: hidden } declaration on the body.\n target.addEventListener('touchmove', preventTouchMove, listenerOptions);\n\n // Allow scroll on provided target\n if (touchScrollTarget) {\n touchScrollTarget.addEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.addEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n\n // increment active scroll locks\n activeScrollLocks += 1;\n }, [accountForScrollbars]);\n var removeScrollLock = React.useCallback(function (touchScrollTarget) {\n if (!canUseDOM) return;\n var target = document.body;\n var targetStyle = target && target.style;\n\n // safely decrement active scroll locks\n activeScrollLocks = Math.max(activeScrollLocks - 1, 0);\n\n // reapply original body styles, if any\n if (accountForScrollbars && activeScrollLocks < 1) {\n STYLE_KEYS.forEach(function (key) {\n var val = originalStyles.current[key];\n if (targetStyle) {\n targetStyle[key] = val;\n }\n });\n }\n\n // remove touch listeners\n if (target && isTouchDevice()) {\n target.removeEventListener('touchmove', preventTouchMove, listenerOptions);\n if (touchScrollTarget) {\n touchScrollTarget.removeEventListener('touchstart', preventInertiaScroll, listenerOptions);\n touchScrollTarget.removeEventListener('touchmove', allowTouchMove, listenerOptions);\n }\n }\n }, [accountForScrollbars]);\n React.useEffect(function () {\n if (!isEnabled) return;\n var element = scrollTarget.current;\n addScrollLock(element);\n return function () {\n removeScrollLock(element);\n };\n }, [isEnabled, addScrollLock, removeScrollLock]);\n return function (element) {\n scrollTarget.current = element;\n };\n}\n\nvar blurSelectInput = function blurSelectInput(event) {\n var element = event.target;\n return element.ownerDocument.activeElement && element.ownerDocument.activeElement.blur();\n};\nvar _ref2$1 = {\n name: \"1kfdb0e\",\n styles: \"position:fixed;left:0;bottom:0;right:0;top:0\"\n} ;\nfunction ScrollManager(_ref) {\n var children = _ref.children,\n lockEnabled = _ref.lockEnabled,\n _ref$captureEnabled = _ref.captureEnabled,\n captureEnabled = _ref$captureEnabled === void 0 ? true : _ref$captureEnabled,\n onBottomArrive = _ref.onBottomArrive,\n onBottomLeave = _ref.onBottomLeave,\n onTopArrive = _ref.onTopArrive,\n onTopLeave = _ref.onTopLeave;\n var setScrollCaptureTarget = useScrollCapture({\n isEnabled: captureEnabled,\n onBottomArrive: onBottomArrive,\n onBottomLeave: onBottomLeave,\n onTopArrive: onTopArrive,\n onTopLeave: onTopLeave\n });\n var setScrollLockTarget = useScrollLock({\n isEnabled: lockEnabled\n });\n var targetRef = function targetRef(element) {\n setScrollCaptureTarget(element);\n setScrollLockTarget(element);\n };\n return react.jsx(React.Fragment, null, lockEnabled && react.jsx(\"div\", {\n onClick: blurSelectInput,\n css: _ref2$1\n }), children(targetRef));\n}\n\nvar _ref2 = {\n name: \"1a0ro4n-requiredInput\",\n styles: \"label:requiredInput;opacity:0;pointer-events:none;position:absolute;bottom:0;left:0;right:0;width:100%\"\n} ;\nvar RequiredInput = function RequiredInput(_ref) {\n var name = _ref.name,\n onFocus = _ref.onFocus;\n return react.jsx(\"input\", {\n required: true,\n name: name,\n tabIndex: -1,\n \"aria-hidden\": \"true\",\n onFocus: onFocus,\n css: _ref2\n // Prevent `Switching from uncontrolled to controlled` error\n ,\n value: \"\",\n onChange: function onChange() {}\n });\n};\nvar RequiredInput$1 = RequiredInput;\n\nvar formatGroupLabel = function formatGroupLabel(group) {\n return group.label;\n};\nvar getOptionLabel$1 = function getOptionLabel(option) {\n return option.label;\n};\nvar getOptionValue$1 = function getOptionValue(option) {\n return option.value;\n};\nvar isOptionDisabled = function isOptionDisabled(option) {\n return !!option.isDisabled;\n};\n\nvar defaultStyles = {\n clearIndicator: index.clearIndicatorCSS,\n container: index.containerCSS,\n control: index.css,\n dropdownIndicator: index.dropdownIndicatorCSS,\n group: index.groupCSS,\n groupHeading: index.groupHeadingCSS,\n indicatorsContainer: index.indicatorsContainerCSS,\n indicatorSeparator: index.indicatorSeparatorCSS,\n input: index.inputCSS,\n loadingIndicator: index.loadingIndicatorCSS,\n loadingMessage: index.loadingMessageCSS,\n menu: index.menuCSS,\n menuList: index.menuListCSS,\n menuPortal: index.menuPortalCSS,\n multiValue: index.multiValueCSS,\n multiValueLabel: index.multiValueLabelCSS,\n multiValueRemove: index.multiValueRemoveCSS,\n noOptionsMessage: index.noOptionsMessageCSS,\n option: index.optionCSS,\n placeholder: index.placeholderCSS,\n singleValue: index.css$1,\n valueContainer: index.valueContainerCSS\n};\n// Merge Utility\n// Allows consumers to extend a base Select with additional styles\n\nfunction mergeStyles(source) {\n var target = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // initialize with source styles\n var styles = _objectSpread({}, source);\n\n // massage in target styles\n Object.keys(target).forEach(function (keyAsString) {\n var key = keyAsString;\n if (source[key]) {\n styles[key] = function (rsCss, props) {\n return target[key](source[key](rsCss, props), props);\n };\n } else {\n styles[key] = target[key];\n }\n });\n return styles;\n}\n\nvar colors = {\n primary: '#2684FF',\n primary75: '#4C9AFF',\n primary50: '#B2D4FF',\n primary25: '#DEEBFF',\n danger: '#DE350B',\n dangerLight: '#FFBDAD',\n neutral0: 'hsl(0, 0%, 100%)',\n neutral5: 'hsl(0, 0%, 95%)',\n neutral10: 'hsl(0, 0%, 90%)',\n neutral20: 'hsl(0, 0%, 80%)',\n neutral30: 'hsl(0, 0%, 70%)',\n neutral40: 'hsl(0, 0%, 60%)',\n neutral50: 'hsl(0, 0%, 50%)',\n neutral60: 'hsl(0, 0%, 40%)',\n neutral70: 'hsl(0, 0%, 30%)',\n neutral80: 'hsl(0, 0%, 20%)',\n neutral90: 'hsl(0, 0%, 10%)'\n};\nvar borderRadius = 4;\n// Used to calculate consistent margin/padding on elements\nvar baseUnit = 4;\n// The minimum height of the control\nvar controlHeight = 38;\n// The amount of space between the control and menu */\nvar menuGutter = baseUnit * 2;\nvar spacing = {\n baseUnit: baseUnit,\n controlHeight: controlHeight,\n menuGutter: menuGutter\n};\nvar defaultTheme = {\n borderRadius: borderRadius,\n colors: colors,\n spacing: spacing\n};\n\nvar defaultProps = {\n 'aria-live': 'polite',\n backspaceRemovesValue: true,\n blurInputOnSelect: index.isTouchCapable(),\n captureMenuScroll: !index.isTouchCapable(),\n classNames: {},\n closeMenuOnSelect: true,\n closeMenuOnScroll: false,\n components: {},\n controlShouldRenderValue: true,\n escapeClearsValue: false,\n filterOption: createFilter(),\n formatGroupLabel: formatGroupLabel,\n getOptionLabel: getOptionLabel$1,\n getOptionValue: getOptionValue$1,\n isDisabled: false,\n isLoading: false,\n isMulti: false,\n isRtl: false,\n isSearchable: true,\n isOptionDisabled: isOptionDisabled,\n loadingMessage: function loadingMessage() {\n return 'Loading...';\n },\n maxMenuHeight: 300,\n minMenuHeight: 140,\n menuIsOpen: false,\n menuPlacement: 'bottom',\n menuPosition: 'absolute',\n menuShouldBlockScroll: false,\n menuShouldScrollIntoView: !index.isMobileDevice(),\n noOptionsMessage: function noOptionsMessage() {\n return 'No options';\n },\n openMenuOnFocus: false,\n openMenuOnClick: true,\n options: [],\n pageSize: 5,\n placeholder: 'Select...',\n screenReaderStatus: function screenReaderStatus(_ref) {\n var count = _ref.count;\n return \"\".concat(count, \" result\").concat(count !== 1 ? 's' : '', \" available\");\n },\n styles: {},\n tabIndex: 0,\n tabSelectsValue: true,\n unstyled: false\n};\nfunction toCategorizedOption(props, option, selectValue, index) {\n var isDisabled = _isOptionDisabled(props, option, selectValue);\n var isSelected = _isOptionSelected(props, option, selectValue);\n var label = getOptionLabel(props, option);\n var value = getOptionValue(props, option);\n return {\n type: 'option',\n data: option,\n isDisabled: isDisabled,\n isSelected: isSelected,\n label: label,\n value: value,\n index: index\n };\n}\nfunction buildCategorizedOptions(props, selectValue) {\n return props.options.map(function (groupOrOption, groupOrOptionIndex) {\n if ('options' in groupOrOption) {\n var categorizedOptions = groupOrOption.options.map(function (option, optionIndex) {\n return toCategorizedOption(props, option, selectValue, optionIndex);\n }).filter(function (categorizedOption) {\n return isFocusable(props, categorizedOption);\n });\n return categorizedOptions.length > 0 ? {\n type: 'group',\n data: groupOrOption,\n options: categorizedOptions,\n index: groupOrOptionIndex\n } : undefined;\n }\n var categorizedOption = toCategorizedOption(props, groupOrOption, selectValue, groupOrOptionIndex);\n return isFocusable(props, categorizedOption) ? categorizedOption : undefined;\n }).filter(index.notNullish);\n}\nfunction buildFocusableOptionsFromCategorizedOptions(categorizedOptions) {\n return categorizedOptions.reduce(function (optionsAccumulator, categorizedOption) {\n if (categorizedOption.type === 'group') {\n optionsAccumulator.push.apply(optionsAccumulator, _toConsumableArray(categorizedOption.options.map(function (option) {\n return option.data;\n })));\n } else {\n optionsAccumulator.push(categorizedOption.data);\n }\n return optionsAccumulator;\n }, []);\n}\nfunction buildFocusableOptions(props, selectValue) {\n return buildFocusableOptionsFromCategorizedOptions(buildCategorizedOptions(props, selectValue));\n}\nfunction isFocusable(props, categorizedOption) {\n var _props$inputValue = props.inputValue,\n inputValue = _props$inputValue === void 0 ? '' : _props$inputValue;\n var data = categorizedOption.data,\n isSelected = categorizedOption.isSelected,\n label = categorizedOption.label,\n value = categorizedOption.value;\n return (!shouldHideSelectedOptions(props) || !isSelected) && _filterOption(props, {\n label: label,\n value: value,\n data: data\n }, inputValue);\n}\nfunction getNextFocusedValue(state, nextSelectValue) {\n var focusedValue = state.focusedValue,\n lastSelectValue = state.selectValue;\n var lastFocusedIndex = lastSelectValue.indexOf(focusedValue);\n if (lastFocusedIndex > -1) {\n var nextFocusedIndex = nextSelectValue.indexOf(focusedValue);\n if (nextFocusedIndex > -1) {\n // the focused value is still in the selectValue, return it\n return focusedValue;\n } else if (lastFocusedIndex < nextSelectValue.length) {\n // the focusedValue is not present in the next selectValue array by\n // reference, so return the new value at the same index\n return nextSelectValue[lastFocusedIndex];\n }\n }\n return null;\n}\nfunction getNextFocusedOption(state, options) {\n var lastFocusedOption = state.focusedOption;\n return lastFocusedOption && options.indexOf(lastFocusedOption) > -1 ? lastFocusedOption : options[0];\n}\nvar getOptionLabel = function getOptionLabel(props, data) {\n return props.getOptionLabel(data);\n};\nvar getOptionValue = function getOptionValue(props, data) {\n return props.getOptionValue(data);\n};\nfunction _isOptionDisabled(props, option, selectValue) {\n return typeof props.isOptionDisabled === 'function' ? props.isOptionDisabled(option, selectValue) : false;\n}\nfunction _isOptionSelected(props, option, selectValue) {\n if (selectValue.indexOf(option) > -1) return true;\n if (typeof props.isOptionSelected === 'function') {\n return props.isOptionSelected(option, selectValue);\n }\n var candidate = getOptionValue(props, option);\n return selectValue.some(function (i) {\n return getOptionValue(props, i) === candidate;\n });\n}\nfunction _filterOption(props, option, inputValue) {\n return props.filterOption ? props.filterOption(option, inputValue) : true;\n}\nvar shouldHideSelectedOptions = function shouldHideSelectedOptions(props) {\n var hideSelectedOptions = props.hideSelectedOptions,\n isMulti = props.isMulti;\n if (hideSelectedOptions === undefined) return isMulti;\n return hideSelectedOptions;\n};\nvar instanceId = 1;\nvar Select = /*#__PURE__*/function (_Component) {\n _inherits(Select, _Component);\n var _super = _createSuper(Select);\n // Misc. Instance Properties\n // ------------------------------\n\n // TODO\n\n // Refs\n // ------------------------------\n\n // Lifecycle\n // ------------------------------\n\n function Select(_props) {\n var _this;\n _classCallCheck(this, Select);\n _this = _super.call(this, _props);\n _this.state = {\n ariaSelection: null,\n focusedOption: null,\n focusedValue: null,\n inputIsHidden: false,\n isFocused: false,\n selectValue: [],\n clearFocusValueOnUpdate: false,\n prevWasFocused: false,\n inputIsHiddenAfterUpdate: undefined,\n prevProps: undefined\n };\n _this.blockOptionHover = false;\n _this.isComposing = false;\n _this.commonProps = void 0;\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n _this.instancePrefix = '';\n _this.openAfterFocus = false;\n _this.scrollToFocusedOptionOnUpdate = false;\n _this.userIsDragging = void 0;\n _this.controlRef = null;\n _this.getControlRef = function (ref) {\n _this.controlRef = ref;\n };\n _this.focusedOptionRef = null;\n _this.getFocusedOptionRef = function (ref) {\n _this.focusedOptionRef = ref;\n };\n _this.menuListRef = null;\n _this.getMenuListRef = function (ref) {\n _this.menuListRef = ref;\n };\n _this.inputRef = null;\n _this.getInputRef = function (ref) {\n _this.inputRef = ref;\n };\n _this.focus = _this.focusInput;\n _this.blur = _this.blurInput;\n _this.onChange = function (newValue, actionMeta) {\n var _this$props = _this.props,\n onChange = _this$props.onChange,\n name = _this$props.name;\n actionMeta.name = name;\n _this.ariaOnChange(newValue, actionMeta);\n onChange(newValue, actionMeta);\n };\n _this.setValue = function (newValue, action, option) {\n var _this$props2 = _this.props,\n closeMenuOnSelect = _this$props2.closeMenuOnSelect,\n isMulti = _this$props2.isMulti,\n inputValue = _this$props2.inputValue;\n _this.onInputChange('', {\n action: 'set-value',\n prevInputValue: inputValue\n });\n if (closeMenuOnSelect) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n }\n // when the select value should change, we should reset focusedValue\n _this.setState({\n clearFocusValueOnUpdate: true\n });\n _this.onChange(newValue, {\n action: action,\n option: option\n });\n };\n _this.selectOption = function (newValue) {\n var _this$props3 = _this.props,\n blurInputOnSelect = _this$props3.blurInputOnSelect,\n isMulti = _this$props3.isMulti,\n name = _this$props3.name;\n var selectValue = _this.state.selectValue;\n var deselected = isMulti && _this.isOptionSelected(newValue, selectValue);\n var isDisabled = _this.isOptionDisabled(newValue, selectValue);\n if (deselected) {\n var candidate = _this.getOptionValue(newValue);\n _this.setValue(index.multiValueAsValue(selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n })), 'deselect-option', newValue);\n } else if (!isDisabled) {\n // Select option if option is not disabled\n if (isMulti) {\n _this.setValue(index.multiValueAsValue([].concat(_toConsumableArray(selectValue), [newValue])), 'select-option', newValue);\n } else {\n _this.setValue(index.singleValueAsValue(newValue), 'select-option');\n }\n } else {\n _this.ariaOnChange(index.singleValueAsValue(newValue), {\n action: 'select-option',\n option: newValue,\n name: name\n });\n return;\n }\n if (blurInputOnSelect) {\n _this.blurInput();\n }\n };\n _this.removeValue = function (removedValue) {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var candidate = _this.getOptionValue(removedValue);\n var newValueArray = selectValue.filter(function (i) {\n return _this.getOptionValue(i) !== candidate;\n });\n var newValue = index.valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'remove-value',\n removedValue: removedValue\n });\n _this.focusInput();\n };\n _this.clearValue = function () {\n var selectValue = _this.state.selectValue;\n _this.onChange(index.valueTernary(_this.props.isMulti, [], null), {\n action: 'clear',\n removedValues: selectValue\n });\n };\n _this.popValue = function () {\n var isMulti = _this.props.isMulti;\n var selectValue = _this.state.selectValue;\n var lastSelectedValue = selectValue[selectValue.length - 1];\n var newValueArray = selectValue.slice(0, selectValue.length - 1);\n var newValue = index.valueTernary(isMulti, newValueArray, newValueArray[0] || null);\n _this.onChange(newValue, {\n action: 'pop-value',\n removedValue: lastSelectedValue\n });\n };\n _this.getValue = function () {\n return _this.state.selectValue;\n };\n _this.cx = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return index.classNames.apply(void 0, [_this.props.classNamePrefix].concat(args));\n };\n _this.getOptionLabel = function (data) {\n return getOptionLabel(_this.props, data);\n };\n _this.getOptionValue = function (data) {\n return getOptionValue(_this.props, data);\n };\n _this.getStyles = function (key, props) {\n var unstyled = _this.props.unstyled;\n var base = defaultStyles[key](props, unstyled);\n base.boxSizing = 'border-box';\n var custom = _this.props.styles[key];\n return custom ? custom(base, props) : base;\n };\n _this.getClassNames = function (key, props) {\n var _this$props$className, _this$props$className2;\n return (_this$props$className = (_this$props$className2 = _this.props.classNames)[key]) === null || _this$props$className === void 0 ? void 0 : _this$props$className.call(_this$props$className2, props);\n };\n _this.getElementId = function (element) {\n return \"\".concat(_this.instancePrefix, \"-\").concat(element);\n };\n _this.getComponents = function () {\n return index.defaultComponents(_this.props);\n };\n _this.buildCategorizedOptions = function () {\n return buildCategorizedOptions(_this.props, _this.state.selectValue);\n };\n _this.getCategorizedOptions = function () {\n return _this.props.menuIsOpen ? _this.buildCategorizedOptions() : [];\n };\n _this.buildFocusableOptions = function () {\n return buildFocusableOptionsFromCategorizedOptions(_this.buildCategorizedOptions());\n };\n _this.getFocusableOptions = function () {\n return _this.props.menuIsOpen ? _this.buildFocusableOptions() : [];\n };\n _this.ariaOnChange = function (value, actionMeta) {\n _this.setState({\n ariaSelection: _objectSpread({\n value: value\n }, actionMeta)\n });\n };\n _this.onMenuMouseDown = function (event) {\n if (event.button !== 0) {\n return;\n }\n event.stopPropagation();\n event.preventDefault();\n _this.focusInput();\n };\n _this.onMenuMouseMove = function (event) {\n _this.blockOptionHover = false;\n };\n _this.onControlMouseDown = function (event) {\n // Event captured by dropdown indicator\n if (event.defaultPrevented) {\n return;\n }\n var openMenuOnClick = _this.props.openMenuOnClick;\n if (!_this.state.isFocused) {\n if (openMenuOnClick) {\n _this.openAfterFocus = true;\n }\n _this.focusInput();\n } else if (!_this.props.menuIsOpen) {\n if (openMenuOnClick) {\n _this.openMenu('first');\n }\n } else {\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n _this.onMenuClose();\n }\n }\n if (event.target.tagName !== 'INPUT' && event.target.tagName !== 'TEXTAREA') {\n event.preventDefault();\n }\n };\n _this.onDropdownIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n if (_this.props.isDisabled) return;\n var _this$props4 = _this.props,\n isMulti = _this$props4.isMulti,\n menuIsOpen = _this$props4.menuIsOpen;\n _this.focusInput();\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: !isMulti\n });\n _this.onMenuClose();\n } else {\n _this.openMenu('first');\n }\n event.preventDefault();\n };\n _this.onClearIndicatorMouseDown = function (event) {\n // ignore mouse events that weren't triggered by the primary button\n if (event && event.type === 'mousedown' && event.button !== 0) {\n return;\n }\n _this.clearValue();\n event.preventDefault();\n _this.openAfterFocus = false;\n if (event.type === 'touchend') {\n _this.focusInput();\n } else {\n setTimeout(function () {\n return _this.focusInput();\n });\n }\n };\n _this.onScroll = function (event) {\n if (typeof _this.props.closeMenuOnScroll === 'boolean') {\n if (event.target instanceof HTMLElement && index.isDocumentElement(event.target)) {\n _this.props.onMenuClose();\n }\n } else if (typeof _this.props.closeMenuOnScroll === 'function') {\n if (_this.props.closeMenuOnScroll(event)) {\n _this.props.onMenuClose();\n }\n }\n };\n _this.onCompositionStart = function () {\n _this.isComposing = true;\n };\n _this.onCompositionEnd = function () {\n _this.isComposing = false;\n };\n _this.onTouchStart = function (_ref2) {\n var touches = _ref2.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n _this.initialTouchX = touch.clientX;\n _this.initialTouchY = touch.clientY;\n _this.userIsDragging = false;\n };\n _this.onTouchMove = function (_ref3) {\n var touches = _ref3.touches;\n var touch = touches && touches.item(0);\n if (!touch) {\n return;\n }\n var deltaX = Math.abs(touch.clientX - _this.initialTouchX);\n var deltaY = Math.abs(touch.clientY - _this.initialTouchY);\n var moveThreshold = 5;\n _this.userIsDragging = deltaX > moveThreshold || deltaY > moveThreshold;\n };\n _this.onTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n\n // close the menu if the user taps outside\n // we're checking on event.target here instead of event.currentTarget, because we want to assert information\n // on events on child elements, not the document (which we've attached this handler to).\n if (_this.controlRef && !_this.controlRef.contains(event.target) && _this.menuListRef && !_this.menuListRef.contains(event.target)) {\n _this.blurInput();\n }\n\n // reset move vars\n _this.initialTouchX = 0;\n _this.initialTouchY = 0;\n };\n _this.onControlTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onControlMouseDown(event);\n };\n _this.onClearIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onClearIndicatorMouseDown(event);\n };\n _this.onDropdownIndicatorTouchEnd = function (event) {\n if (_this.userIsDragging) return;\n _this.onDropdownIndicatorMouseDown(event);\n };\n _this.handleInputChange = function (event) {\n var prevInputValue = _this.props.inputValue;\n var inputValue = event.currentTarget.value;\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange(inputValue, {\n action: 'input-change',\n prevInputValue: prevInputValue\n });\n if (!_this.props.menuIsOpen) {\n _this.onMenuOpen();\n }\n };\n _this.onInputFocus = function (event) {\n if (_this.props.onFocus) {\n _this.props.onFocus(event);\n }\n _this.setState({\n inputIsHiddenAfterUpdate: false,\n isFocused: true\n });\n if (_this.openAfterFocus || _this.props.openMenuOnFocus) {\n _this.openMenu('first');\n }\n _this.openAfterFocus = false;\n };\n _this.onInputBlur = function (event) {\n var prevInputValue = _this.props.inputValue;\n if (_this.menuListRef && _this.menuListRef.contains(document.activeElement)) {\n _this.inputRef.focus();\n return;\n }\n if (_this.props.onBlur) {\n _this.props.onBlur(event);\n }\n _this.onInputChange('', {\n action: 'input-blur',\n prevInputValue: prevInputValue\n });\n _this.onMenuClose();\n _this.setState({\n focusedValue: null,\n isFocused: false\n });\n };\n _this.onOptionHover = function (focusedOption) {\n if (_this.blockOptionHover || _this.state.focusedOption === focusedOption) {\n return;\n }\n _this.setState({\n focusedOption: focusedOption\n });\n };\n _this.shouldHideSelectedOptions = function () {\n return shouldHideSelectedOptions(_this.props);\n };\n _this.onValueInputFocus = function (e) {\n e.preventDefault();\n e.stopPropagation();\n _this.focus();\n };\n _this.onKeyDown = function (event) {\n var _this$props5 = _this.props,\n isMulti = _this$props5.isMulti,\n backspaceRemovesValue = _this$props5.backspaceRemovesValue,\n escapeClearsValue = _this$props5.escapeClearsValue,\n inputValue = _this$props5.inputValue,\n isClearable = _this$props5.isClearable,\n isDisabled = _this$props5.isDisabled,\n menuIsOpen = _this$props5.menuIsOpen,\n onKeyDown = _this$props5.onKeyDown,\n tabSelectsValue = _this$props5.tabSelectsValue,\n openMenuOnFocus = _this$props5.openMenuOnFocus;\n var _this$state = _this.state,\n focusedOption = _this$state.focusedOption,\n focusedValue = _this$state.focusedValue,\n selectValue = _this$state.selectValue;\n if (isDisabled) return;\n if (typeof onKeyDown === 'function') {\n onKeyDown(event);\n if (event.defaultPrevented) {\n return;\n }\n }\n\n // Block option hover events when the user has just pressed a key\n _this.blockOptionHover = true;\n switch (event.key) {\n case 'ArrowLeft':\n if (!isMulti || inputValue) return;\n _this.focusValue('previous');\n break;\n case 'ArrowRight':\n if (!isMulti || inputValue) return;\n _this.focusValue('next');\n break;\n case 'Delete':\n case 'Backspace':\n if (inputValue) return;\n if (focusedValue) {\n _this.removeValue(focusedValue);\n } else {\n if (!backspaceRemovesValue) return;\n if (isMulti) {\n _this.popValue();\n } else if (isClearable) {\n _this.clearValue();\n }\n }\n break;\n case 'Tab':\n if (_this.isComposing) return;\n if (event.shiftKey || !menuIsOpen || !tabSelectsValue || !focusedOption ||\n // don't capture the event if the menu opens on focus and the focused\n // option is already selected; it breaks the flow of navigation\n openMenuOnFocus && _this.isOptionSelected(focusedOption, selectValue)) {\n return;\n }\n _this.selectOption(focusedOption);\n break;\n case 'Enter':\n if (event.keyCode === 229) {\n // ignore the keydown event from an Input Method Editor(IME)\n // ref. https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n break;\n }\n if (menuIsOpen) {\n if (!focusedOption) return;\n if (_this.isComposing) return;\n _this.selectOption(focusedOption);\n break;\n }\n return;\n case 'Escape':\n if (menuIsOpen) {\n _this.setState({\n inputIsHiddenAfterUpdate: false\n });\n _this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: inputValue\n });\n _this.onMenuClose();\n } else if (isClearable && escapeClearsValue) {\n _this.clearValue();\n }\n break;\n case ' ':\n // space\n if (inputValue) {\n return;\n }\n if (!menuIsOpen) {\n _this.openMenu('first');\n break;\n }\n if (!focusedOption) return;\n _this.selectOption(focusedOption);\n break;\n case 'ArrowUp':\n if (menuIsOpen) {\n _this.focusOption('up');\n } else {\n _this.openMenu('last');\n }\n break;\n case 'ArrowDown':\n if (menuIsOpen) {\n _this.focusOption('down');\n } else {\n _this.openMenu('first');\n }\n break;\n case 'PageUp':\n if (!menuIsOpen) return;\n _this.focusOption('pageup');\n break;\n case 'PageDown':\n if (!menuIsOpen) return;\n _this.focusOption('pagedown');\n break;\n case 'Home':\n if (!menuIsOpen) return;\n _this.focusOption('first');\n break;\n case 'End':\n if (!menuIsOpen) return;\n _this.focusOption('last');\n break;\n default:\n return;\n }\n event.preventDefault();\n };\n _this.instancePrefix = 'react-select-' + (_this.props.instanceId || ++instanceId);\n _this.state.selectValue = index.cleanValue(_props.value);\n\n // Set focusedOption if menuIsOpen is set on init (e.g. defaultMenuIsOpen)\n if (_props.menuIsOpen && _this.state.selectValue.length) {\n var focusableOptions = _this.buildFocusableOptions();\n var optionIndex = focusableOptions.indexOf(_this.state.selectValue[0]);\n _this.state.focusedOption = focusableOptions[optionIndex];\n }\n return _this;\n }\n _createClass(Select, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startListeningComposition();\n this.startListeningToTouch();\n if (this.props.closeMenuOnScroll && document && document.addEventListener) {\n // Listen to all scroll events, and filter them out inside of 'onScroll'\n document.addEventListener('scroll', this.onScroll, true);\n }\n if (this.props.autoFocus) {\n this.focusInput();\n }\n\n // Scroll focusedOption into view if menuIsOpen is set on mount (e.g. defaultMenuIsOpen)\n if (this.props.menuIsOpen && this.state.focusedOption && this.menuListRef && this.focusedOptionRef) {\n index.scrollIntoView(this.menuListRef, this.focusedOptionRef);\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props6 = this.props,\n isDisabled = _this$props6.isDisabled,\n menuIsOpen = _this$props6.menuIsOpen;\n var isFocused = this.state.isFocused;\n if (\n // ensure focus is restored correctly when the control becomes enabled\n isFocused && !isDisabled && prevProps.isDisabled ||\n // ensure focus is on the Input when the menu opens\n isFocused && menuIsOpen && !prevProps.menuIsOpen) {\n this.focusInput();\n }\n if (isFocused && isDisabled && !prevProps.isDisabled) {\n // ensure select state gets blurred in case Select is programmatically disabled while focused\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: false\n }, this.onMenuClose);\n } else if (!isFocused && !isDisabled && prevProps.isDisabled && this.inputRef === document.activeElement) {\n // ensure select state gets focused in case Select is programatically re-enabled while focused (Firefox)\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n isFocused: true\n });\n }\n\n // scroll the focused option into view if necessary\n if (this.menuListRef && this.focusedOptionRef && this.scrollToFocusedOptionOnUpdate) {\n index.scrollIntoView(this.menuListRef, this.focusedOptionRef);\n this.scrollToFocusedOptionOnUpdate = false;\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.stopListeningComposition();\n this.stopListeningToTouch();\n document.removeEventListener('scroll', this.onScroll, true);\n }\n\n // ==============================\n // Consumer Handlers\n // ==============================\n }, {\n key: \"onMenuOpen\",\n value: function onMenuOpen() {\n this.props.onMenuOpen();\n }\n }, {\n key: \"onMenuClose\",\n value: function onMenuClose() {\n this.onInputChange('', {\n action: 'menu-close',\n prevInputValue: this.props.inputValue\n });\n this.props.onMenuClose();\n }\n }, {\n key: \"onInputChange\",\n value: function onInputChange(newValue, actionMeta) {\n this.props.onInputChange(newValue, actionMeta);\n }\n\n // ==============================\n // Methods\n // ==============================\n }, {\n key: \"focusInput\",\n value: function focusInput() {\n if (!this.inputRef) return;\n this.inputRef.focus();\n }\n }, {\n key: \"blurInput\",\n value: function blurInput() {\n if (!this.inputRef) return;\n this.inputRef.blur();\n }\n\n // aliased for consumers\n }, {\n key: \"openMenu\",\n value: function openMenu(focusOption) {\n var _this2 = this;\n var _this$state2 = this.state,\n selectValue = _this$state2.selectValue,\n isFocused = _this$state2.isFocused;\n var focusableOptions = this.buildFocusableOptions();\n var openAtIndex = focusOption === 'first' ? 0 : focusableOptions.length - 1;\n if (!this.props.isMulti) {\n var selectedIndex = focusableOptions.indexOf(selectValue[0]);\n if (selectedIndex > -1) {\n openAtIndex = selectedIndex;\n }\n }\n\n // only scroll if the menu isn't already open\n this.scrollToFocusedOptionOnUpdate = !(isFocused && this.menuListRef);\n this.setState({\n inputIsHiddenAfterUpdate: false,\n focusedValue: null,\n focusedOption: focusableOptions[openAtIndex]\n }, function () {\n return _this2.onMenuOpen();\n });\n }\n }, {\n key: \"focusValue\",\n value: function focusValue(direction) {\n var _this$state3 = this.state,\n selectValue = _this$state3.selectValue,\n focusedValue = _this$state3.focusedValue;\n\n // Only multiselects support value focusing\n if (!this.props.isMulti) return;\n this.setState({\n focusedOption: null\n });\n var focusedIndex = selectValue.indexOf(focusedValue);\n if (!focusedValue) {\n focusedIndex = -1;\n }\n var lastIndex = selectValue.length - 1;\n var nextFocus = -1;\n if (!selectValue.length) return;\n switch (direction) {\n case 'previous':\n if (focusedIndex === 0) {\n // don't cycle from the start to the end\n nextFocus = 0;\n } else if (focusedIndex === -1) {\n // if nothing is focused, focus the last value first\n nextFocus = lastIndex;\n } else {\n nextFocus = focusedIndex - 1;\n }\n break;\n case 'next':\n if (focusedIndex > -1 && focusedIndex < lastIndex) {\n nextFocus = focusedIndex + 1;\n }\n break;\n }\n this.setState({\n inputIsHidden: nextFocus !== -1,\n focusedValue: selectValue[nextFocus]\n });\n }\n }, {\n key: \"focusOption\",\n value: function focusOption() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'first';\n var pageSize = this.props.pageSize;\n var focusedOption = this.state.focusedOption;\n var options = this.getFocusableOptions();\n if (!options.length) return;\n var nextFocus = 0; // handles 'first'\n var focusedIndex = options.indexOf(focusedOption);\n if (!focusedOption) {\n focusedIndex = -1;\n }\n if (direction === 'up') {\n nextFocus = focusedIndex > 0 ? focusedIndex - 1 : options.length - 1;\n } else if (direction === 'down') {\n nextFocus = (focusedIndex + 1) % options.length;\n } else if (direction === 'pageup') {\n nextFocus = focusedIndex - pageSize;\n if (nextFocus < 0) nextFocus = 0;\n } else if (direction === 'pagedown') {\n nextFocus = focusedIndex + pageSize;\n if (nextFocus > options.length - 1) nextFocus = options.length - 1;\n } else if (direction === 'last') {\n nextFocus = options.length - 1;\n }\n this.scrollToFocusedOptionOnUpdate = true;\n this.setState({\n focusedOption: options[nextFocus],\n focusedValue: null\n });\n }\n }, {\n key: \"getTheme\",\n value:\n // ==============================\n // Getters\n // ==============================\n\n function getTheme() {\n // Use the default theme if there are no customisations.\n if (!this.props.theme) {\n return defaultTheme;\n }\n // If the theme prop is a function, assume the function\n // knows how to merge the passed-in default theme with\n // its own modifications.\n if (typeof this.props.theme === 'function') {\n return this.props.theme(defaultTheme);\n }\n // Otherwise, if a plain theme object was passed in,\n // overlay it with the default theme.\n return _objectSpread(_objectSpread({}, defaultTheme), this.props.theme);\n }\n }, {\n key: \"getCommonProps\",\n value: function getCommonProps() {\n var clearValue = this.clearValue,\n cx = this.cx,\n getStyles = this.getStyles,\n getClassNames = this.getClassNames,\n getValue = this.getValue,\n selectOption = this.selectOption,\n setValue = this.setValue,\n props = this.props;\n var isMulti = props.isMulti,\n isRtl = props.isRtl,\n options = props.options;\n var hasValue = this.hasValue();\n return {\n clearValue: clearValue,\n cx: cx,\n getStyles: getStyles,\n getClassNames: getClassNames,\n getValue: getValue,\n hasValue: hasValue,\n isMulti: isMulti,\n isRtl: isRtl,\n options: options,\n selectOption: selectOption,\n selectProps: props,\n setValue: setValue,\n theme: this.getTheme()\n };\n }\n }, {\n key: \"hasValue\",\n value: function hasValue() {\n var selectValue = this.state.selectValue;\n return selectValue.length > 0;\n }\n }, {\n key: \"hasOptions\",\n value: function hasOptions() {\n return !!this.getFocusableOptions().length;\n }\n }, {\n key: \"isClearable\",\n value: function isClearable() {\n var _this$props7 = this.props,\n isClearable = _this$props7.isClearable,\n isMulti = _this$props7.isMulti;\n\n // single select, by default, IS NOT clearable\n // multi select, by default, IS clearable\n if (isClearable === undefined) return isMulti;\n return isClearable;\n }\n }, {\n key: \"isOptionDisabled\",\n value: function isOptionDisabled(option, selectValue) {\n return _isOptionDisabled(this.props, option, selectValue);\n }\n }, {\n key: \"isOptionSelected\",\n value: function isOptionSelected(option, selectValue) {\n return _isOptionSelected(this.props, option, selectValue);\n }\n }, {\n key: \"filterOption\",\n value: function filterOption(option, inputValue) {\n return _filterOption(this.props, option, inputValue);\n }\n }, {\n key: \"formatOptionLabel\",\n value: function formatOptionLabel(data, context) {\n if (typeof this.props.formatOptionLabel === 'function') {\n var _inputValue = this.props.inputValue;\n var _selectValue = this.state.selectValue;\n return this.props.formatOptionLabel(data, {\n context: context,\n inputValue: _inputValue,\n selectValue: _selectValue\n });\n } else {\n return this.getOptionLabel(data);\n }\n }\n }, {\n key: \"formatGroupLabel\",\n value: function formatGroupLabel(data) {\n return this.props.formatGroupLabel(data);\n }\n\n // ==============================\n // Mouse Handlers\n // ==============================\n }, {\n key: \"startListeningComposition\",\n value:\n // ==============================\n // Composition Handlers\n // ==============================\n\n function startListeningComposition() {\n if (document && document.addEventListener) {\n document.addEventListener('compositionstart', this.onCompositionStart, false);\n document.addEventListener('compositionend', this.onCompositionEnd, false);\n }\n }\n }, {\n key: \"stopListeningComposition\",\n value: function stopListeningComposition() {\n if (document && document.removeEventListener) {\n document.removeEventListener('compositionstart', this.onCompositionStart);\n document.removeEventListener('compositionend', this.onCompositionEnd);\n }\n }\n }, {\n key: \"startListeningToTouch\",\n value:\n // ==============================\n // Touch Handlers\n // ==============================\n\n function startListeningToTouch() {\n if (document && document.addEventListener) {\n document.addEventListener('touchstart', this.onTouchStart, false);\n document.addEventListener('touchmove', this.onTouchMove, false);\n document.addEventListener('touchend', this.onTouchEnd, false);\n }\n }\n }, {\n key: \"stopListeningToTouch\",\n value: function stopListeningToTouch() {\n if (document && document.removeEventListener) {\n document.removeEventListener('touchstart', this.onTouchStart);\n document.removeEventListener('touchmove', this.onTouchMove);\n document.removeEventListener('touchend', this.onTouchEnd);\n }\n }\n }, {\n key: \"renderInput\",\n value:\n // ==============================\n // Renderers\n // ==============================\n function renderInput() {\n var _this$props8 = this.props,\n isDisabled = _this$props8.isDisabled,\n isSearchable = _this$props8.isSearchable,\n inputId = _this$props8.inputId,\n inputValue = _this$props8.inputValue,\n tabIndex = _this$props8.tabIndex,\n form = _this$props8.form,\n menuIsOpen = _this$props8.menuIsOpen,\n required = _this$props8.required;\n var _this$getComponents = this.getComponents(),\n Input = _this$getComponents.Input;\n var _this$state4 = this.state,\n inputIsHidden = _this$state4.inputIsHidden,\n ariaSelection = _this$state4.ariaSelection;\n var commonProps = this.commonProps;\n var id = inputId || this.getElementId('input');\n\n // aria attributes makes the JSX \"noisy\", separated for clarity\n var ariaAttributes = _objectSpread(_objectSpread(_objectSpread({\n 'aria-autocomplete': 'list',\n 'aria-expanded': menuIsOpen,\n 'aria-haspopup': true,\n 'aria-errormessage': this.props['aria-errormessage'],\n 'aria-invalid': this.props['aria-invalid'],\n 'aria-label': this.props['aria-label'],\n 'aria-labelledby': this.props['aria-labelledby'],\n 'aria-required': required,\n role: 'combobox'\n }, menuIsOpen && {\n 'aria-controls': this.getElementId('listbox'),\n 'aria-owns': this.getElementId('listbox')\n }), !isSearchable && {\n 'aria-readonly': true\n }), this.hasValue() ? (ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus' && {\n 'aria-describedby': this.getElementId('live-region')\n } : {\n 'aria-describedby': this.getElementId('placeholder')\n });\n if (!isSearchable) {\n // use a dummy input to maintain focus/blur functionality\n return /*#__PURE__*/React__namespace.createElement(DummyInput, _extends({\n id: id,\n innerRef: this.getInputRef,\n onBlur: this.onInputBlur,\n onChange: index.noop,\n onFocus: this.onInputFocus,\n disabled: isDisabled,\n tabIndex: tabIndex,\n inputMode: \"none\",\n form: form,\n value: \"\"\n }, ariaAttributes));\n }\n return /*#__PURE__*/React__namespace.createElement(Input, _extends({}, commonProps, {\n autoCapitalize: \"none\",\n autoComplete: \"off\",\n autoCorrect: \"off\",\n id: id,\n innerRef: this.getInputRef,\n isDisabled: isDisabled,\n isHidden: inputIsHidden,\n onBlur: this.onInputBlur,\n onChange: this.handleInputChange,\n onFocus: this.onInputFocus,\n spellCheck: \"false\",\n tabIndex: tabIndex,\n form: form,\n type: \"text\",\n value: inputValue\n }, ariaAttributes));\n }\n }, {\n key: \"renderPlaceholderOrValue\",\n value: function renderPlaceholderOrValue() {\n var _this3 = this;\n var _this$getComponents2 = this.getComponents(),\n MultiValue = _this$getComponents2.MultiValue,\n MultiValueContainer = _this$getComponents2.MultiValueContainer,\n MultiValueLabel = _this$getComponents2.MultiValueLabel,\n MultiValueRemove = _this$getComponents2.MultiValueRemove,\n SingleValue = _this$getComponents2.SingleValue,\n Placeholder = _this$getComponents2.Placeholder;\n var commonProps = this.commonProps;\n var _this$props9 = this.props,\n controlShouldRenderValue = _this$props9.controlShouldRenderValue,\n isDisabled = _this$props9.isDisabled,\n isMulti = _this$props9.isMulti,\n inputValue = _this$props9.inputValue,\n placeholder = _this$props9.placeholder;\n var _this$state5 = this.state,\n selectValue = _this$state5.selectValue,\n focusedValue = _this$state5.focusedValue,\n isFocused = _this$state5.isFocused;\n if (!this.hasValue() || !controlShouldRenderValue) {\n return inputValue ? null : /*#__PURE__*/React__namespace.createElement(Placeholder, _extends({}, commonProps, {\n key: \"placeholder\",\n isDisabled: isDisabled,\n isFocused: isFocused,\n innerProps: {\n id: this.getElementId('placeholder')\n }\n }), placeholder);\n }\n if (isMulti) {\n return selectValue.map(function (opt, index) {\n var isOptionFocused = opt === focusedValue;\n var key = \"\".concat(_this3.getOptionLabel(opt), \"-\").concat(_this3.getOptionValue(opt));\n return /*#__PURE__*/React__namespace.createElement(MultiValue, _extends({}, commonProps, {\n components: {\n Container: MultiValueContainer,\n Label: MultiValueLabel,\n Remove: MultiValueRemove\n },\n isFocused: isOptionFocused,\n isDisabled: isDisabled,\n key: key,\n index: index,\n removeProps: {\n onClick: function onClick() {\n return _this3.removeValue(opt);\n },\n onTouchEnd: function onTouchEnd() {\n return _this3.removeValue(opt);\n },\n onMouseDown: function onMouseDown(e) {\n e.preventDefault();\n }\n },\n data: opt\n }), _this3.formatOptionLabel(opt, 'value'));\n });\n }\n if (inputValue) {\n return null;\n }\n var singleValue = selectValue[0];\n return /*#__PURE__*/React__namespace.createElement(SingleValue, _extends({}, commonProps, {\n data: singleValue,\n isDisabled: isDisabled\n }), this.formatOptionLabel(singleValue, 'value'));\n }\n }, {\n key: \"renderClearIndicator\",\n value: function renderClearIndicator() {\n var _this$getComponents3 = this.getComponents(),\n ClearIndicator = _this$getComponents3.ClearIndicator;\n var commonProps = this.commonProps;\n var _this$props10 = this.props,\n isDisabled = _this$props10.isDisabled,\n isLoading = _this$props10.isLoading;\n var isFocused = this.state.isFocused;\n if (!this.isClearable() || !ClearIndicator || isDisabled || !this.hasValue() || isLoading) {\n return null;\n }\n var innerProps = {\n onMouseDown: this.onClearIndicatorMouseDown,\n onTouchEnd: this.onClearIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(ClearIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderLoadingIndicator\",\n value: function renderLoadingIndicator() {\n var _this$getComponents4 = this.getComponents(),\n LoadingIndicator = _this$getComponents4.LoadingIndicator;\n var commonProps = this.commonProps;\n var _this$props11 = this.props,\n isDisabled = _this$props11.isDisabled,\n isLoading = _this$props11.isLoading;\n var isFocused = this.state.isFocused;\n if (!LoadingIndicator || !isLoading) return null;\n var innerProps = {\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(LoadingIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderIndicatorSeparator\",\n value: function renderIndicatorSeparator() {\n var _this$getComponents5 = this.getComponents(),\n DropdownIndicator = _this$getComponents5.DropdownIndicator,\n IndicatorSeparator = _this$getComponents5.IndicatorSeparator;\n\n // separator doesn't make sense without the dropdown indicator\n if (!DropdownIndicator || !IndicatorSeparator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n return /*#__PURE__*/React__namespace.createElement(IndicatorSeparator, _extends({}, commonProps, {\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderDropdownIndicator\",\n value: function renderDropdownIndicator() {\n var _this$getComponents6 = this.getComponents(),\n DropdownIndicator = _this$getComponents6.DropdownIndicator;\n if (!DropdownIndicator) return null;\n var commonProps = this.commonProps;\n var isDisabled = this.props.isDisabled;\n var isFocused = this.state.isFocused;\n var innerProps = {\n onMouseDown: this.onDropdownIndicatorMouseDown,\n onTouchEnd: this.onDropdownIndicatorTouchEnd,\n 'aria-hidden': 'true'\n };\n return /*#__PURE__*/React__namespace.createElement(DropdownIndicator, _extends({}, commonProps, {\n innerProps: innerProps,\n isDisabled: isDisabled,\n isFocused: isFocused\n }));\n }\n }, {\n key: \"renderMenu\",\n value: function renderMenu() {\n var _this4 = this;\n var _this$getComponents7 = this.getComponents(),\n Group = _this$getComponents7.Group,\n GroupHeading = _this$getComponents7.GroupHeading,\n Menu = _this$getComponents7.Menu,\n MenuList = _this$getComponents7.MenuList,\n MenuPortal = _this$getComponents7.MenuPortal,\n LoadingMessage = _this$getComponents7.LoadingMessage,\n NoOptionsMessage = _this$getComponents7.NoOptionsMessage,\n Option = _this$getComponents7.Option;\n var commonProps = this.commonProps;\n var focusedOption = this.state.focusedOption;\n var _this$props12 = this.props,\n captureMenuScroll = _this$props12.captureMenuScroll,\n inputValue = _this$props12.inputValue,\n isLoading = _this$props12.isLoading,\n loadingMessage = _this$props12.loadingMessage,\n minMenuHeight = _this$props12.minMenuHeight,\n maxMenuHeight = _this$props12.maxMenuHeight,\n menuIsOpen = _this$props12.menuIsOpen,\n menuPlacement = _this$props12.menuPlacement,\n menuPosition = _this$props12.menuPosition,\n menuPortalTarget = _this$props12.menuPortalTarget,\n menuShouldBlockScroll = _this$props12.menuShouldBlockScroll,\n menuShouldScrollIntoView = _this$props12.menuShouldScrollIntoView,\n noOptionsMessage = _this$props12.noOptionsMessage,\n onMenuScrollToTop = _this$props12.onMenuScrollToTop,\n onMenuScrollToBottom = _this$props12.onMenuScrollToBottom;\n if (!menuIsOpen) return null;\n\n // TODO: Internal Option Type here\n var render = function render(props, id) {\n var type = props.type,\n data = props.data,\n isDisabled = props.isDisabled,\n isSelected = props.isSelected,\n label = props.label,\n value = props.value;\n var isFocused = focusedOption === data;\n var onHover = isDisabled ? undefined : function () {\n return _this4.onOptionHover(data);\n };\n var onSelect = isDisabled ? undefined : function () {\n return _this4.selectOption(data);\n };\n var optionId = \"\".concat(_this4.getElementId('option'), \"-\").concat(id);\n var innerProps = {\n id: optionId,\n onClick: onSelect,\n onMouseMove: onHover,\n onMouseOver: onHover,\n tabIndex: -1\n };\n return /*#__PURE__*/React__namespace.createElement(Option, _extends({}, commonProps, {\n innerProps: innerProps,\n data: data,\n isDisabled: isDisabled,\n isSelected: isSelected,\n key: optionId,\n label: label,\n type: type,\n value: value,\n isFocused: isFocused,\n innerRef: isFocused ? _this4.getFocusedOptionRef : undefined\n }), _this4.formatOptionLabel(props.data, 'menu'));\n };\n var menuUI;\n if (this.hasOptions()) {\n menuUI = this.getCategorizedOptions().map(function (item) {\n if (item.type === 'group') {\n var _data = item.data,\n options = item.options,\n groupIndex = item.index;\n var groupId = \"\".concat(_this4.getElementId('group'), \"-\").concat(groupIndex);\n var headingId = \"\".concat(groupId, \"-heading\");\n return /*#__PURE__*/React__namespace.createElement(Group, _extends({}, commonProps, {\n key: groupId,\n data: _data,\n options: options,\n Heading: GroupHeading,\n headingProps: {\n id: headingId,\n data: item.data\n },\n label: _this4.formatGroupLabel(item.data)\n }), item.options.map(function (option) {\n return render(option, \"\".concat(groupIndex, \"-\").concat(option.index));\n }));\n } else if (item.type === 'option') {\n return render(item, \"\".concat(item.index));\n }\n });\n } else if (isLoading) {\n var message = loadingMessage({\n inputValue: inputValue\n });\n if (message === null) return null;\n menuUI = /*#__PURE__*/React__namespace.createElement(LoadingMessage, commonProps, message);\n } else {\n var _message = noOptionsMessage({\n inputValue: inputValue\n });\n if (_message === null) return null;\n menuUI = /*#__PURE__*/React__namespace.createElement(NoOptionsMessage, commonProps, _message);\n }\n var menuPlacementProps = {\n minMenuHeight: minMenuHeight,\n maxMenuHeight: maxMenuHeight,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition,\n menuShouldScrollIntoView: menuShouldScrollIntoView\n };\n var menuElement = /*#__PURE__*/React__namespace.createElement(index.MenuPlacer, _extends({}, commonProps, menuPlacementProps), function (_ref4) {\n var ref = _ref4.ref,\n _ref4$placerProps = _ref4.placerProps,\n placement = _ref4$placerProps.placement,\n maxHeight = _ref4$placerProps.maxHeight;\n return /*#__PURE__*/React__namespace.createElement(Menu, _extends({}, commonProps, menuPlacementProps, {\n innerRef: ref,\n innerProps: {\n onMouseDown: _this4.onMenuMouseDown,\n onMouseMove: _this4.onMenuMouseMove,\n id: _this4.getElementId('listbox')\n },\n isLoading: isLoading,\n placement: placement\n }), /*#__PURE__*/React__namespace.createElement(ScrollManager, {\n captureEnabled: captureMenuScroll,\n onTopArrive: onMenuScrollToTop,\n onBottomArrive: onMenuScrollToBottom,\n lockEnabled: menuShouldBlockScroll\n }, function (scrollTargetRef) {\n return /*#__PURE__*/React__namespace.createElement(MenuList, _extends({}, commonProps, {\n innerRef: function innerRef(instance) {\n _this4.getMenuListRef(instance);\n scrollTargetRef(instance);\n },\n isLoading: isLoading,\n maxHeight: maxHeight,\n focusedOption: focusedOption\n }), menuUI);\n }));\n });\n\n // positioning behaviour is almost identical for portalled and fixed,\n // so we use the same component. the actual portalling logic is forked\n // within the component based on `menuPosition`\n return menuPortalTarget || menuPosition === 'fixed' ? /*#__PURE__*/React__namespace.createElement(MenuPortal, _extends({}, commonProps, {\n appendTo: menuPortalTarget,\n controlElement: this.controlRef,\n menuPlacement: menuPlacement,\n menuPosition: menuPosition\n }), menuElement) : menuElement;\n }\n }, {\n key: \"renderFormField\",\n value: function renderFormField() {\n var _this5 = this;\n var _this$props13 = this.props,\n delimiter = _this$props13.delimiter,\n isDisabled = _this$props13.isDisabled,\n isMulti = _this$props13.isMulti,\n name = _this$props13.name,\n required = _this$props13.required;\n var selectValue = this.state.selectValue;\n if (required && !this.hasValue() && !isDisabled) {\n return /*#__PURE__*/React__namespace.createElement(RequiredInput$1, {\n name: name,\n onFocus: this.onValueInputFocus\n });\n }\n if (!name || isDisabled) return;\n if (isMulti) {\n if (delimiter) {\n var value = selectValue.map(function (opt) {\n return _this5.getOptionValue(opt);\n }).join(delimiter);\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: value\n });\n } else {\n var input = selectValue.length > 0 ? selectValue.map(function (opt, i) {\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n key: \"i-\".concat(i),\n name: name,\n type: \"hidden\",\n value: _this5.getOptionValue(opt)\n });\n }) : /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: \"\"\n });\n return /*#__PURE__*/React__namespace.createElement(\"div\", null, input);\n }\n } else {\n var _value = selectValue[0] ? this.getOptionValue(selectValue[0]) : '';\n return /*#__PURE__*/React__namespace.createElement(\"input\", {\n name: name,\n type: \"hidden\",\n value: _value\n });\n }\n }\n }, {\n key: \"renderLiveRegion\",\n value: function renderLiveRegion() {\n var commonProps = this.commonProps;\n var _this$state6 = this.state,\n ariaSelection = _this$state6.ariaSelection,\n focusedOption = _this$state6.focusedOption,\n focusedValue = _this$state6.focusedValue,\n isFocused = _this$state6.isFocused,\n selectValue = _this$state6.selectValue;\n var focusableOptions = this.getFocusableOptions();\n return /*#__PURE__*/React__namespace.createElement(LiveRegion$1, _extends({}, commonProps, {\n id: this.getElementId('live-region'),\n ariaSelection: ariaSelection,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n isFocused: isFocused,\n selectValue: selectValue,\n focusableOptions: focusableOptions\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$getComponents8 = this.getComponents(),\n Control = _this$getComponents8.Control,\n IndicatorsContainer = _this$getComponents8.IndicatorsContainer,\n SelectContainer = _this$getComponents8.SelectContainer,\n ValueContainer = _this$getComponents8.ValueContainer;\n var _this$props14 = this.props,\n className = _this$props14.className,\n id = _this$props14.id,\n isDisabled = _this$props14.isDisabled,\n menuIsOpen = _this$props14.menuIsOpen;\n var isFocused = this.state.isFocused;\n var commonProps = this.commonProps = this.getCommonProps();\n return /*#__PURE__*/React__namespace.createElement(SelectContainer, _extends({}, commonProps, {\n className: className,\n innerProps: {\n id: id,\n onKeyDown: this.onKeyDown\n },\n isDisabled: isDisabled,\n isFocused: isFocused\n }), this.renderLiveRegion(), /*#__PURE__*/React__namespace.createElement(Control, _extends({}, commonProps, {\n innerRef: this.getControlRef,\n innerProps: {\n onMouseDown: this.onControlMouseDown,\n onTouchEnd: this.onControlTouchEnd\n },\n isDisabled: isDisabled,\n isFocused: isFocused,\n menuIsOpen: menuIsOpen\n }), /*#__PURE__*/React__namespace.createElement(ValueContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderPlaceholderOrValue(), this.renderInput()), /*#__PURE__*/React__namespace.createElement(IndicatorsContainer, _extends({}, commonProps, {\n isDisabled: isDisabled\n }), this.renderClearIndicator(), this.renderLoadingIndicator(), this.renderIndicatorSeparator(), this.renderDropdownIndicator())), this.renderMenu(), this.renderFormField());\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(props, state) {\n var prevProps = state.prevProps,\n clearFocusValueOnUpdate = state.clearFocusValueOnUpdate,\n inputIsHiddenAfterUpdate = state.inputIsHiddenAfterUpdate,\n ariaSelection = state.ariaSelection,\n isFocused = state.isFocused,\n prevWasFocused = state.prevWasFocused;\n var options = props.options,\n value = props.value,\n menuIsOpen = props.menuIsOpen,\n inputValue = props.inputValue,\n isMulti = props.isMulti;\n var selectValue = index.cleanValue(value);\n var newMenuOptionsState = {};\n if (prevProps && (value !== prevProps.value || options !== prevProps.options || menuIsOpen !== prevProps.menuIsOpen || inputValue !== prevProps.inputValue)) {\n var focusableOptions = menuIsOpen ? buildFocusableOptions(props, selectValue) : [];\n var focusedValue = clearFocusValueOnUpdate ? getNextFocusedValue(state, selectValue) : null;\n var focusedOption = getNextFocusedOption(state, focusableOptions);\n newMenuOptionsState = {\n selectValue: selectValue,\n focusedOption: focusedOption,\n focusedValue: focusedValue,\n clearFocusValueOnUpdate: false\n };\n }\n // some updates should toggle the state of the input visibility\n var newInputIsHiddenState = inputIsHiddenAfterUpdate != null && props !== prevProps ? {\n inputIsHidden: inputIsHiddenAfterUpdate,\n inputIsHiddenAfterUpdate: undefined\n } : {};\n var newAriaSelection = ariaSelection;\n var hasKeptFocus = isFocused && prevWasFocused;\n if (isFocused && !hasKeptFocus) {\n // If `value` or `defaultValue` props are not empty then announce them\n // when the Select is initially focused\n newAriaSelection = {\n value: index.valueTernary(isMulti, selectValue, selectValue[0] || null),\n options: selectValue,\n action: 'initial-input-focus'\n };\n hasKeptFocus = !prevWasFocused;\n }\n\n // If the 'initial-input-focus' action has been set already\n // then reset the ariaSelection to null\n if ((ariaSelection === null || ariaSelection === void 0 ? void 0 : ariaSelection.action) === 'initial-input-focus') {\n newAriaSelection = null;\n }\n return _objectSpread(_objectSpread(_objectSpread({}, newMenuOptionsState), newInputIsHiddenState), {}, {\n prevProps: props,\n ariaSelection: newAriaSelection,\n prevWasFocused: hasKeptFocus\n });\n }\n }]);\n return Select;\n}(React.Component);\nSelect.defaultProps = defaultProps;\n\nexports.Select = Select;\nexports.createFilter = createFilter;\nexports.defaultProps = defaultProps;\nexports.defaultTheme = defaultTheme;\nexports.getOptionLabel = getOptionLabel$1;\nexports.getOptionValue = getOptionValue$1;\nexports.mergeStyles = mergeStyles;\n","'use strict';\n\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar react = require('@emotion/react');\nvar _slicedToArray = require('@babel/runtime/helpers/slicedToArray');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\nvar _typeof = require('@babel/runtime/helpers/typeof');\nvar _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');\nvar _defineProperty = require('@babel/runtime/helpers/defineProperty');\nvar React = require('react');\nvar reactDom = require('react-dom');\nvar dom = require('@floating-ui/dom');\nvar useLayoutEffect = require('use-isomorphic-layout-effect');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar useLayoutEffect__default = /*#__PURE__*/_interopDefault(useLayoutEffect);\n\nvar _excluded$4 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\nfunction classNames(prefix, state) {\n for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n classNameList[_key - 2] = arguments[_key];\n }\n var arr = [].concat(classNameList);\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getClassNames;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$4);\n return _objectSpread({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n var cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n className = props.className;\n return {\n css: getStyles(name, props),\n className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n if (typeof _newValue === 'string') return _newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n properties[_key2 - 1] = arguments[_key2];\n }\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nvar _excluded$3 = [\"children\", \"innerProps\"],\n _excluded2$1 = [\"children\", \"innerProps\"];\nfunction getMenuPlacement(_ref) {\n var preferredMaxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n preferredPlacement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n controlHeight = _ref.controlHeight;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n switch (preferredPlacement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (preferredPlacement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = preferredMaxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (preferredPlacement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = preferredMaxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n }\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n var _objectSpread2;\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _objectSpread((_objectSpread2 = {\n label: 'menu'\n }, _defineProperty(_objectSpread2, alignToControl(placement), '100%'), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"width\", '100%'), _defineProperty(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n backgroundColor: colors.neutral0,\n borderRadius: borderRadius,\n boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n marginBottom: spacing.menuGutter,\n marginTop: spacing.menuGutter\n });\n};\nvar PortalPlacementContext = /*#__PURE__*/React.createContext(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n var children = props.children,\n minMenuHeight = props.minMenuHeight,\n maxMenuHeight = props.maxMenuHeight,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition,\n menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n theme = props.theme;\n var _ref3 = React.useContext(PortalPlacementContext) || {},\n setPortalPlacement = _ref3.setPortalPlacement;\n var ref = React.useRef(null);\n var _useState = React.useState(maxMenuHeight),\n _useState2 = _slicedToArray(_useState, 2),\n maxHeight = _useState2[0],\n setMaxHeight = _useState2[1];\n var _useState3 = React.useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n placement = _useState4[0],\n setPlacement = _useState4[1];\n var controlHeight = theme.spacing.controlHeight;\n useLayoutEffect__default[\"default\"](function () {\n var menuEl = ref.current;\n if (!menuEl) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: menuEl,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n controlHeight: controlHeight\n });\n setMaxHeight(state.maxHeight);\n setPlacement(state.placement);\n setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n return children({\n ref: ref,\n placerProps: _objectSpread(_objectSpread({}, props), {}, {\n placement: placement || coercePlacement(menuPlacement),\n maxHeight: maxHeight\n })\n });\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'menu', {\n menu: true\n }), {\n ref: innerRef\n }, innerProps), children);\n};\nvar Menu$1 = Menu;\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return _objectSpread({\n maxHeight: maxHeight,\n overflowY: 'auto',\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n }, unstyled ? {} : {\n paddingBottom: baseUnit,\n paddingTop: baseUnit\n });\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'menuList', {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }), {\n ref: innerRef\n }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return _objectSpread({\n textAlign: 'center'\n }, unstyled ? {} : {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(_ref6) {\n var _ref6$children = _ref6.children,\n children = _ref6$children === void 0 ? 'No options' : _ref6$children,\n innerProps = _ref6.innerProps,\n restProps = _objectWithoutProperties(_ref6, _excluded$3);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'noOptionsMessage', {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }), innerProps), children);\n};\nvar LoadingMessage = function LoadingMessage(_ref7) {\n var _ref7$children = _ref7.children,\n children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,\n innerProps = _ref7.innerProps,\n restProps = _objectWithoutProperties(_ref7, _excluded2$1);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'loadingMessage', {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }), innerProps), children);\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref8) {\n var rect = _ref8.rect,\n offset = _ref8.offset,\n position = _ref8.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = function MenuPortal(props) {\n var appendTo = props.appendTo,\n children = props.children,\n controlElement = props.controlElement,\n innerProps = props.innerProps,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition;\n var menuPortalRef = React.useRef(null);\n var cleanupRef = React.useRef(null);\n var _useState5 = React.useState(coercePlacement(menuPlacement)),\n _useState6 = _slicedToArray(_useState5, 2),\n placement = _useState6[0],\n setPortalPlacement = _useState6[1];\n var portalPlacementContext = React.useMemo(function () {\n return {\n setPortalPlacement: setPortalPlacement\n };\n }, []);\n var _useState7 = React.useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n computedPosition = _useState8[0],\n setComputedPosition = _useState8[1];\n var updateComputedPosition = React.useCallback(function () {\n if (!controlElement) return;\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n setComputedPosition({\n offset: offset,\n rect: rect\n });\n }\n }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n useLayoutEffect__default[\"default\"](function () {\n updateComputedPosition();\n }, [updateComputedPosition]);\n var runAutoUpdate = React.useCallback(function () {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (controlElement && menuPortalRef.current) {\n cleanupRef.current = dom.autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {\n elementResize: 'ResizeObserver' in window\n });\n }\n }, [controlElement, updateComputedPosition]);\n useLayoutEffect__default[\"default\"](function () {\n runAutoUpdate();\n }, [runAutoUpdate]);\n var setMenuPortalElement = React.useCallback(function (menuPortalElement) {\n menuPortalRef.current = menuPortalElement;\n runAutoUpdate();\n }, [runAutoUpdate]);\n\n // bail early if required elements aren't present\n if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = react.jsx(\"div\", _extends({\n ref: setMenuPortalElement\n }, getStyleProps(_objectSpread(_objectSpread({}, props), {}, {\n offset: computedPosition.offset,\n position: menuPosition,\n rect: computedPosition.rect\n }), 'menuPortal', {\n 'menu-portal': true\n }), innerProps), children);\n return react.jsx(PortalPlacementContext.Provider, {\n value: portalPlacementContext\n }, appendTo ? /*#__PURE__*/reactDom.createPortal(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'container', {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return _objectSpread({\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n }, unstyled ? {} : {\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n });\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n hasValue = props.hasValue;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'valueContainer', {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'indicatorsContainer', {\n indicators: true\n }), innerProps), children);\n};\n\nvar _templateObject;\nvar _excluded$2 = [\"size\"],\n _excluded2 = [\"innerProps\", \"isRtl\", \"size\"];\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 = {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} ;\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n return react.jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n return react.jsx(Svg, _extends({\n size: 20\n }, props), react.jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return react.jsx(Svg, _extends({\n size: 20\n }, props), react.jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return _objectSpread({\n label: 'indicatorContainer',\n display: 'flex',\n transition: 'color 150ms'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2,\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'dropdownIndicator', {\n indicator: true,\n 'dropdown-indicator': true\n }), innerProps), children || react.jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'clearIndicator', {\n indicator: true,\n 'clear-indicator': true\n }), innerProps), children || react.jsx(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return _objectSpread({\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n width: 1\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2\n });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var innerProps = props.innerProps;\n return react.jsx(\"span\", _extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n 'indicator-separator': true\n })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return _objectSpread({\n label: 'loadingIndicator',\n display: 'flex',\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2\n });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return react.jsx(\"span\", {\n css: /*#__PURE__*/react.css({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, \"\" , \"\" )\n });\n};\nvar LoadingIndicator = function LoadingIndicator(_ref7) {\n var innerProps = _ref7.innerProps,\n isRtl = _ref7.isRtl,\n _ref7$size = _ref7.size,\n size = _ref7$size === void 0 ? 4 : _ref7$size,\n restProps = _objectWithoutProperties(_ref7, _excluded2);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n innerProps: innerProps,\n isRtl: isRtl,\n size: size\n }), 'loadingIndicator', {\n indicator: true,\n 'loading-indicator': true\n }), innerProps), react.jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), react.jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), react.jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\n\nvar css$1 = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return _objectSpread({\n label: 'control',\n alignItems: 'center',\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms'\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n });\n};\nvar Control = function Control(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return react.jsx(\"div\", _extends({\n ref: innerRef\n }, getStyleProps(props, 'control', {\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }), innerProps), children);\n};\nvar Control$1 = Control;\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n var spacing = _ref.theme.spacing;\n return unstyled ? {} : {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\nvar Group = function Group(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'group', {\n group: true\n }), innerProps), react.jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n getClassNames: getClassNames,\n cx: cx\n }), label), react.jsx(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n colors = _ref2$theme.colors,\n spacing = _ref2$theme.spacing;\n return _objectSpread({\n label: 'group',\n cursor: 'default',\n display: 'block'\n }, unstyled ? {} : {\n color: colors.neutral40,\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n });\n};\nvar GroupHeading = function GroupHeading(props) {\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'groupHeading', {\n 'group-heading': true\n }), innerProps));\n};\nvar Group$1 = Group;\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread(_objectSpread({\n visibility: isDisabled ? 'hidden' : 'visible',\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle), unstyled ? {} : {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n color: colors.neutral80\n });\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\nvar Input = function Input(props) {\n var cx = props.cx,\n value = props.value;\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'input', {\n 'input-container': true\n }), {\n \"data-value\": value || ''\n }), react.jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\nvar Input$1 = Input;\n\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'multiValue',\n display: 'flex',\n minWidth: 0\n }, unstyled ? {} : {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n margin: spacing.baseUnit / 2\n });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return _objectSpread({\n overflow: 'hidden',\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n padding: 3,\n paddingLeft: 6\n });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return _objectSpread({\n alignItems: 'center',\n display: 'flex'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return react.jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return react.jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || react.jsx(CrossIcon, {\n size: 14\n }));\n}\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n components = props.components,\n data = props.data,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return react.jsx(Container, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValue', {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n })), innerProps),\n selectProps: selectProps\n }, react.jsx(Label, {\n data: data,\n innerProps: _objectSpread({}, getStyleProps(props, 'multiValueLabel', {\n 'multi-value__label': true\n })),\n selectProps: selectProps\n }, children), react.jsx(Remove, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValueRemove', {\n 'multi-value__remove': true\n })), {}, {\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n};\nvar MultiValue$1 = MultiValue;\n\nvar optionCSS = function optionCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'option',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n }, unstyled ? {} : {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n });\n};\nvar Option = function Option(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'option', {\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }), {\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\nvar Option$1 = Option;\n\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'placeholder',\n gridArea: '1 / 1 / 2 / 3'\n }, unstyled ? {} : {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'placeholder', {\n placeholder: true\n }), innerProps), children);\n};\nvar Placeholder$1 = Placeholder;\n\nvar css = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'singleValue',\n gridArea: '1 / 1 / 2 / 3',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'singleValue', {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }), innerProps), children);\n};\nvar SingleValue$1 = SingleValue;\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control$1,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group$1,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input$1,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu$1,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue$1,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option$1,\n Placeholder: Placeholder$1,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue$1,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread(_objectSpread({}, components), props.components);\n};\n\nexports.MenuPlacer = MenuPlacer;\nexports.classNames = classNames;\nexports.cleanValue = cleanValue;\nexports.clearIndicatorCSS = clearIndicatorCSS;\nexports.components = components;\nexports.containerCSS = containerCSS;\nexports.css = css$1;\nexports.css$1 = css;\nexports.defaultComponents = defaultComponents;\nexports.dropdownIndicatorCSS = dropdownIndicatorCSS;\nexports.groupCSS = groupCSS;\nexports.groupHeadingCSS = groupHeadingCSS;\nexports.handleInputChange = handleInputChange;\nexports.indicatorSeparatorCSS = indicatorSeparatorCSS;\nexports.indicatorsContainerCSS = indicatorsContainerCSS;\nexports.inputCSS = inputCSS;\nexports.isDocumentElement = isDocumentElement;\nexports.isMobileDevice = isMobileDevice;\nexports.isTouchCapable = isTouchCapable;\nexports.loadingIndicatorCSS = loadingIndicatorCSS;\nexports.loadingMessageCSS = loadingMessageCSS;\nexports.menuCSS = menuCSS;\nexports.menuListCSS = menuListCSS;\nexports.menuPortalCSS = menuPortalCSS;\nexports.multiValueAsValue = multiValueAsValue;\nexports.multiValueCSS = multiValueCSS;\nexports.multiValueLabelCSS = multiValueLabelCSS;\nexports.multiValueRemoveCSS = multiValueRemoveCSS;\nexports.noOptionsMessageCSS = noOptionsMessageCSS;\nexports.noop = noop;\nexports.notNullish = notNullish;\nexports.optionCSS = optionCSS;\nexports.placeholderCSS = placeholderCSS;\nexports.removeProps = removeProps;\nexports.scrollIntoView = scrollIntoView;\nexports.singleValueAsValue = singleValueAsValue;\nexports.supportsPassiveEvents = supportsPassiveEvents;\nexports.valueContainerCSS = valueContainerCSS;\nexports.valueTernary = valueTernary;\n","'use strict';\n\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar react = require('@emotion/react');\nvar _slicedToArray = require('@babel/runtime/helpers/slicedToArray');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\nvar _typeof = require('@babel/runtime/helpers/typeof');\nvar _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');\nvar _defineProperty = require('@babel/runtime/helpers/defineProperty');\nvar React = require('react');\nvar reactDom = require('react-dom');\nvar dom = require('@floating-ui/dom');\nvar useLayoutEffect = require('use-isomorphic-layout-effect');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nvar useLayoutEffect__default = /*#__PURE__*/_interopDefault(useLayoutEffect);\n\nvar _excluded$4 = [\"className\", \"clearValue\", \"cx\", \"getStyles\", \"getClassNames\", \"getValue\", \"hasValue\", \"isMulti\", \"isRtl\", \"options\", \"selectOption\", \"selectProps\", \"setValue\", \"theme\"];\n// ==============================\n// NO OP\n// ==============================\n\nvar noop = function noop() {};\n\n// ==============================\n// Class Name Prefixer\n// ==============================\n\n/**\n String representation of component state for styling with class names.\n\n Expects an array of strings OR a string/object pair:\n - className(['comp', 'comp-arg', 'comp-arg-2'])\n @returns 'react-select__comp react-select__comp-arg react-select__comp-arg-2'\n - className('comp', { some: true, state: false })\n @returns 'react-select__comp react-select__comp--some'\n*/\nfunction applyPrefixToName(prefix, name) {\n if (!name) {\n return prefix;\n } else if (name[0] === '-') {\n return prefix + name;\n } else {\n return prefix + '__' + name;\n }\n}\nfunction classNames(prefix, state) {\n for (var _len = arguments.length, classNameList = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n classNameList[_key - 2] = arguments[_key];\n }\n var arr = [].concat(classNameList);\n if (state && prefix) {\n for (var key in state) {\n if (state.hasOwnProperty(key) && state[key]) {\n arr.push(\"\".concat(applyPrefixToName(prefix, key)));\n }\n }\n }\n return arr.filter(function (i) {\n return i;\n }).map(function (i) {\n return String(i).trim();\n }).join(' ');\n}\n// ==============================\n// Clean Value\n// ==============================\n\nvar cleanValue = function cleanValue(value) {\n if (isArray(value)) return value.filter(Boolean);\n if (_typeof(value) === 'object' && value !== null) return [value];\n return [];\n};\n\n// ==============================\n// Clean Common Props\n// ==============================\n\nvar cleanCommonProps = function cleanCommonProps(props) {\n //className\n props.className;\n props.clearValue;\n props.cx;\n props.getStyles;\n props.getClassNames;\n props.getValue;\n props.hasValue;\n props.isMulti;\n props.isRtl;\n props.options;\n props.selectOption;\n props.selectProps;\n props.setValue;\n props.theme;\n var innerProps = _objectWithoutProperties(props, _excluded$4);\n return _objectSpread({}, innerProps);\n};\n\n// ==============================\n// Get Style Props\n// ==============================\n\nvar getStyleProps = function getStyleProps(props, name, classNamesState) {\n var cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n className = props.className;\n return {\n css: getStyles(name, props),\n className: cx(classNamesState !== null && classNamesState !== void 0 ? classNamesState : {}, getClassNames(name, props), className)\n };\n};\n\n// ==============================\n// Handle Input Change\n// ==============================\n\nfunction handleInputChange(inputValue, actionMeta, onInputChange) {\n if (onInputChange) {\n var _newValue = onInputChange(inputValue, actionMeta);\n if (typeof _newValue === 'string') return _newValue;\n }\n return inputValue;\n}\n\n// ==============================\n// Scroll Helpers\n// ==============================\n\nfunction isDocumentElement(el) {\n return [document.documentElement, document.body, window].indexOf(el) > -1;\n}\n\n// Normalized Scroll Top\n// ------------------------------\n\nfunction normalizedHeight(el) {\n if (isDocumentElement(el)) {\n return window.innerHeight;\n }\n return el.clientHeight;\n}\n\n// Normalized scrollTo & scrollTop\n// ------------------------------\n\nfunction getScrollTop(el) {\n if (isDocumentElement(el)) {\n return window.pageYOffset;\n }\n return el.scrollTop;\n}\nfunction scrollTo(el, top) {\n // with a scroll distance, we perform scroll on the element\n if (isDocumentElement(el)) {\n window.scrollTo(0, top);\n return;\n }\n el.scrollTop = top;\n}\n\n// Get Scroll Parent\n// ------------------------------\n\nfunction getScrollParent(element) {\n var style = getComputedStyle(element);\n var excludeStaticParent = style.position === 'absolute';\n var overflowRx = /(auto|scroll)/;\n if (style.position === 'fixed') return document.documentElement;\n for (var parent = element; parent = parent.parentElement;) {\n style = getComputedStyle(parent);\n if (excludeStaticParent && style.position === 'static') {\n continue;\n }\n if (overflowRx.test(style.overflow + style.overflowY + style.overflowX)) {\n return parent;\n }\n }\n return document.documentElement;\n}\n\n// Animated Scroll To\n// ------------------------------\n\n/**\n @param t: time (elapsed)\n @param b: initial value\n @param c: amount of change\n @param d: duration\n*/\nfunction easeOutCubic(t, b, c, d) {\n return c * ((t = t / d - 1) * t * t + 1) + b;\n}\nfunction animatedScrollTo(element, to) {\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 200;\n var callback = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : noop;\n var start = getScrollTop(element);\n var change = to - start;\n var increment = 10;\n var currentTime = 0;\n function animateScroll() {\n currentTime += increment;\n var val = easeOutCubic(currentTime, start, change, duration);\n scrollTo(element, val);\n if (currentTime < duration) {\n window.requestAnimationFrame(animateScroll);\n } else {\n callback(element);\n }\n }\n animateScroll();\n}\n\n// Scroll Into View\n// ------------------------------\n\nfunction scrollIntoView(menuEl, focusedEl) {\n var menuRect = menuEl.getBoundingClientRect();\n var focusedRect = focusedEl.getBoundingClientRect();\n var overScroll = focusedEl.offsetHeight / 3;\n if (focusedRect.bottom + overScroll > menuRect.bottom) {\n scrollTo(menuEl, Math.min(focusedEl.offsetTop + focusedEl.clientHeight - menuEl.offsetHeight + overScroll, menuEl.scrollHeight));\n } else if (focusedRect.top - overScroll < menuRect.top) {\n scrollTo(menuEl, Math.max(focusedEl.offsetTop - overScroll, 0));\n }\n}\n\n// ==============================\n// Get bounding client object\n// ==============================\n\n// cannot get keys using array notation with DOMRect\nfunction getBoundingClientObj(element) {\n var rect = element.getBoundingClientRect();\n return {\n bottom: rect.bottom,\n height: rect.height,\n left: rect.left,\n right: rect.right,\n top: rect.top,\n width: rect.width\n };\n}\n\n// ==============================\n// Touch Capability Detector\n// ==============================\n\nfunction isTouchCapable() {\n try {\n document.createEvent('TouchEvent');\n return true;\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Mobile Device Detector\n// ==============================\n\nfunction isMobileDevice() {\n try {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n } catch (e) {\n return false;\n }\n}\n\n// ==============================\n// Passive Event Detector\n// ==============================\n\n// https://github.com/rafgraph/detect-it/blob/main/src/index.ts#L19-L36\nvar passiveOptionAccessed = false;\nvar options = {\n get passive() {\n return passiveOptionAccessed = true;\n }\n};\n// check for SSR\nvar w = typeof window !== 'undefined' ? window : {};\nif (w.addEventListener && w.removeEventListener) {\n w.addEventListener('p', noop, options);\n w.removeEventListener('p', noop, false);\n}\nvar supportsPassiveEvents = passiveOptionAccessed;\nfunction notNullish(item) {\n return item != null;\n}\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction valueTernary(isMulti, multiValue, singleValue) {\n return isMulti ? multiValue : singleValue;\n}\nfunction singleValueAsValue(singleValue) {\n return singleValue;\n}\nfunction multiValueAsValue(multiValue) {\n return multiValue;\n}\nvar removeProps = function removeProps(propsObj) {\n for (var _len2 = arguments.length, properties = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n properties[_key2 - 1] = arguments[_key2];\n }\n var propsMap = Object.entries(propsObj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n return !properties.includes(key);\n });\n return propsMap.reduce(function (newProps, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n newProps[key] = val;\n return newProps;\n }, {});\n};\n\nvar _excluded$3 = [\"children\", \"innerProps\"],\n _excluded2$1 = [\"children\", \"innerProps\"];\nfunction getMenuPlacement(_ref) {\n var preferredMaxHeight = _ref.maxHeight,\n menuEl = _ref.menuEl,\n minHeight = _ref.minHeight,\n preferredPlacement = _ref.placement,\n shouldScroll = _ref.shouldScroll,\n isFixedPosition = _ref.isFixedPosition,\n controlHeight = _ref.controlHeight;\n var scrollParent = getScrollParent(menuEl);\n var defaultState = {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n\n // something went wrong, return default state\n if (!menuEl || !menuEl.offsetParent) return defaultState;\n\n // we can't trust `scrollParent.scrollHeight` --> it may increase when\n // the menu is rendered\n var _scrollParent$getBoun = scrollParent.getBoundingClientRect(),\n scrollHeight = _scrollParent$getBoun.height;\n var _menuEl$getBoundingCl = menuEl.getBoundingClientRect(),\n menuBottom = _menuEl$getBoundingCl.bottom,\n menuHeight = _menuEl$getBoundingCl.height,\n menuTop = _menuEl$getBoundingCl.top;\n var _menuEl$offsetParent$ = menuEl.offsetParent.getBoundingClientRect(),\n containerTop = _menuEl$offsetParent$.top;\n var viewHeight = isFixedPosition ? window.innerHeight : normalizedHeight(scrollParent);\n var scrollTop = getScrollTop(scrollParent);\n var marginBottom = parseInt(getComputedStyle(menuEl).marginBottom, 10);\n var marginTop = parseInt(getComputedStyle(menuEl).marginTop, 10);\n var viewSpaceAbove = containerTop - marginTop;\n var viewSpaceBelow = viewHeight - menuTop;\n var scrollSpaceAbove = viewSpaceAbove + scrollTop;\n var scrollSpaceBelow = scrollHeight - scrollTop - menuTop;\n var scrollDown = menuBottom - viewHeight + scrollTop + marginBottom;\n var scrollUp = scrollTop + menuTop - marginTop;\n var scrollDuration = 160;\n switch (preferredPlacement) {\n case 'auto':\n case 'bottom':\n // 1: the menu will fit, do nothing\n if (viewSpaceBelow >= menuHeight) {\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceBelow >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceBelow >= minHeight || isFixedPosition && viewSpaceBelow >= minHeight) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollDown, scrollDuration);\n }\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n var constrainedHeight = isFixedPosition ? viewSpaceBelow - marginBottom : scrollSpaceBelow - marginBottom;\n return {\n placement: 'bottom',\n maxHeight: constrainedHeight\n };\n }\n\n // 4. Forked beviour when there isn't enough space below\n\n // AUTO: flip the menu, render above\n if (preferredPlacement === 'auto' || isFixedPosition) {\n // may need to be constrained after flipping\n var _constrainedHeight = preferredMaxHeight;\n var spaceAbove = isFixedPosition ? viewSpaceAbove : scrollSpaceAbove;\n if (spaceAbove >= minHeight) {\n _constrainedHeight = Math.min(spaceAbove - marginBottom - controlHeight, preferredMaxHeight);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight\n };\n }\n\n // BOTTOM: allow browser to increase scrollable area and immediately set scroll\n if (preferredPlacement === 'bottom') {\n if (shouldScroll) {\n scrollTo(scrollParent, scrollDown);\n }\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n }\n break;\n case 'top':\n // 1: the menu will fit, do nothing\n if (viewSpaceAbove >= menuHeight) {\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 2: the menu will fit, if scrolled\n if (scrollSpaceAbove >= menuHeight && !isFixedPosition) {\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: preferredMaxHeight\n };\n }\n\n // 3: the menu will fit, if constrained\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n var _constrainedHeight2 = preferredMaxHeight;\n\n // we want to provide as much of the menu as possible to the user,\n // so give them whatever is available below rather than the minHeight.\n if (!isFixedPosition && scrollSpaceAbove >= minHeight || isFixedPosition && viewSpaceAbove >= minHeight) {\n _constrainedHeight2 = isFixedPosition ? viewSpaceAbove - marginTop : scrollSpaceAbove - marginTop;\n }\n if (shouldScroll) {\n animatedScrollTo(scrollParent, scrollUp, scrollDuration);\n }\n return {\n placement: 'top',\n maxHeight: _constrainedHeight2\n };\n }\n\n // 4. not enough space, the browser WILL NOT increase scrollable area when\n // absolutely positioned element rendered above the viewport (only below).\n // Flip the menu, render below\n return {\n placement: 'bottom',\n maxHeight: preferredMaxHeight\n };\n default:\n throw new Error(\"Invalid placement provided \\\"\".concat(preferredPlacement, \"\\\".\"));\n }\n return defaultState;\n}\n\n// Menu Component\n// ------------------------------\n\nfunction alignToControl(placement) {\n var placementToCSSProp = {\n bottom: 'top',\n top: 'bottom'\n };\n return placement ? placementToCSSProp[placement] : 'bottom';\n}\nvar coercePlacement = function coercePlacement(p) {\n return p === 'auto' ? 'bottom' : p;\n};\nvar menuCSS = function menuCSS(_ref2, unstyled) {\n var _objectSpread2;\n var placement = _ref2.placement,\n _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n spacing = _ref2$theme.spacing,\n colors = _ref2$theme.colors;\n return _objectSpread((_objectSpread2 = {\n label: 'menu'\n }, _defineProperty(_objectSpread2, alignToControl(placement), '100%'), _defineProperty(_objectSpread2, \"position\", 'absolute'), _defineProperty(_objectSpread2, \"width\", '100%'), _defineProperty(_objectSpread2, \"zIndex\", 1), _objectSpread2), unstyled ? {} : {\n backgroundColor: colors.neutral0,\n borderRadius: borderRadius,\n boxShadow: '0 0 0 1px hsla(0, 0%, 0%, 0.1), 0 4px 11px hsla(0, 0%, 0%, 0.1)',\n marginBottom: spacing.menuGutter,\n marginTop: spacing.menuGutter\n });\n};\nvar PortalPlacementContext = /*#__PURE__*/React.createContext(null);\n\n// NOTE: internal only\nvar MenuPlacer = function MenuPlacer(props) {\n var children = props.children,\n minMenuHeight = props.minMenuHeight,\n maxMenuHeight = props.maxMenuHeight,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition,\n menuShouldScrollIntoView = props.menuShouldScrollIntoView,\n theme = props.theme;\n var _ref3 = React.useContext(PortalPlacementContext) || {},\n setPortalPlacement = _ref3.setPortalPlacement;\n var ref = React.useRef(null);\n var _useState = React.useState(maxMenuHeight),\n _useState2 = _slicedToArray(_useState, 2),\n maxHeight = _useState2[0],\n setMaxHeight = _useState2[1];\n var _useState3 = React.useState(null),\n _useState4 = _slicedToArray(_useState3, 2),\n placement = _useState4[0],\n setPlacement = _useState4[1];\n var controlHeight = theme.spacing.controlHeight;\n useLayoutEffect__default[\"default\"](function () {\n var menuEl = ref.current;\n if (!menuEl) return;\n\n // DO NOT scroll if position is fixed\n var isFixedPosition = menuPosition === 'fixed';\n var shouldScroll = menuShouldScrollIntoView && !isFixedPosition;\n var state = getMenuPlacement({\n maxHeight: maxMenuHeight,\n menuEl: menuEl,\n minHeight: minMenuHeight,\n placement: menuPlacement,\n shouldScroll: shouldScroll,\n isFixedPosition: isFixedPosition,\n controlHeight: controlHeight\n });\n setMaxHeight(state.maxHeight);\n setPlacement(state.placement);\n setPortalPlacement === null || setPortalPlacement === void 0 ? void 0 : setPortalPlacement(state.placement);\n }, [maxMenuHeight, menuPlacement, menuPosition, menuShouldScrollIntoView, minMenuHeight, setPortalPlacement, controlHeight]);\n return children({\n ref: ref,\n placerProps: _objectSpread(_objectSpread({}, props), {}, {\n placement: placement || coercePlacement(menuPlacement),\n maxHeight: maxHeight\n })\n });\n};\nvar Menu = function Menu(props) {\n var children = props.children,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'menu', {\n menu: true\n }), {\n ref: innerRef\n }, innerProps), children);\n};\nvar Menu$1 = Menu;\n\n// ==============================\n// Menu List\n// ==============================\n\nvar menuListCSS = function menuListCSS(_ref4, unstyled) {\n var maxHeight = _ref4.maxHeight,\n baseUnit = _ref4.theme.spacing.baseUnit;\n return _objectSpread({\n maxHeight: maxHeight,\n overflowY: 'auto',\n position: 'relative',\n // required for offset[Height, Top] > keyboard scroll\n WebkitOverflowScrolling: 'touch'\n }, unstyled ? {} : {\n paddingBottom: baseUnit,\n paddingTop: baseUnit\n });\n};\nvar MenuList = function MenuList(props) {\n var children = props.children,\n innerProps = props.innerProps,\n innerRef = props.innerRef,\n isMulti = props.isMulti;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'menuList', {\n 'menu-list': true,\n 'menu-list--is-multi': isMulti\n }), {\n ref: innerRef\n }, innerProps), children);\n};\n\n// ==============================\n// Menu Notices\n// ==============================\n\nvar noticeCSS = function noticeCSS(_ref5, unstyled) {\n var _ref5$theme = _ref5.theme,\n baseUnit = _ref5$theme.spacing.baseUnit,\n colors = _ref5$theme.colors;\n return _objectSpread({\n textAlign: 'center'\n }, unstyled ? {} : {\n color: colors.neutral40,\n padding: \"\".concat(baseUnit * 2, \"px \").concat(baseUnit * 3, \"px\")\n });\n};\nvar noOptionsMessageCSS = noticeCSS;\nvar loadingMessageCSS = noticeCSS;\nvar NoOptionsMessage = function NoOptionsMessage(_ref6) {\n var _ref6$children = _ref6.children,\n children = _ref6$children === void 0 ? 'No options' : _ref6$children,\n innerProps = _ref6.innerProps,\n restProps = _objectWithoutProperties(_ref6, _excluded$3);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'noOptionsMessage', {\n 'menu-notice': true,\n 'menu-notice--no-options': true\n }), innerProps), children);\n};\nvar LoadingMessage = function LoadingMessage(_ref7) {\n var _ref7$children = _ref7.children,\n children = _ref7$children === void 0 ? 'Loading...' : _ref7$children,\n innerProps = _ref7.innerProps,\n restProps = _objectWithoutProperties(_ref7, _excluded2$1);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n children: children,\n innerProps: innerProps\n }), 'loadingMessage', {\n 'menu-notice': true,\n 'menu-notice--loading': true\n }), innerProps), children);\n};\n\n// ==============================\n// Menu Portal\n// ==============================\n\nvar menuPortalCSS = function menuPortalCSS(_ref8) {\n var rect = _ref8.rect,\n offset = _ref8.offset,\n position = _ref8.position;\n return {\n left: rect.left,\n position: position,\n top: offset,\n width: rect.width,\n zIndex: 1\n };\n};\nvar MenuPortal = function MenuPortal(props) {\n var appendTo = props.appendTo,\n children = props.children,\n controlElement = props.controlElement,\n innerProps = props.innerProps,\n menuPlacement = props.menuPlacement,\n menuPosition = props.menuPosition;\n var menuPortalRef = React.useRef(null);\n var cleanupRef = React.useRef(null);\n var _useState5 = React.useState(coercePlacement(menuPlacement)),\n _useState6 = _slicedToArray(_useState5, 2),\n placement = _useState6[0],\n setPortalPlacement = _useState6[1];\n var portalPlacementContext = React.useMemo(function () {\n return {\n setPortalPlacement: setPortalPlacement\n };\n }, []);\n var _useState7 = React.useState(null),\n _useState8 = _slicedToArray(_useState7, 2),\n computedPosition = _useState8[0],\n setComputedPosition = _useState8[1];\n var updateComputedPosition = React.useCallback(function () {\n if (!controlElement) return;\n var rect = getBoundingClientObj(controlElement);\n var scrollDistance = menuPosition === 'fixed' ? 0 : window.pageYOffset;\n var offset = rect[placement] + scrollDistance;\n if (offset !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset) || rect.left !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left) || rect.width !== (computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width)) {\n setComputedPosition({\n offset: offset,\n rect: rect\n });\n }\n }, [controlElement, menuPosition, placement, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.offset, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.left, computedPosition === null || computedPosition === void 0 ? void 0 : computedPosition.rect.width]);\n useLayoutEffect__default[\"default\"](function () {\n updateComputedPosition();\n }, [updateComputedPosition]);\n var runAutoUpdate = React.useCallback(function () {\n if (typeof cleanupRef.current === 'function') {\n cleanupRef.current();\n cleanupRef.current = null;\n }\n if (controlElement && menuPortalRef.current) {\n cleanupRef.current = dom.autoUpdate(controlElement, menuPortalRef.current, updateComputedPosition, {\n elementResize: 'ResizeObserver' in window\n });\n }\n }, [controlElement, updateComputedPosition]);\n useLayoutEffect__default[\"default\"](function () {\n runAutoUpdate();\n }, [runAutoUpdate]);\n var setMenuPortalElement = React.useCallback(function (menuPortalElement) {\n menuPortalRef.current = menuPortalElement;\n runAutoUpdate();\n }, [runAutoUpdate]);\n\n // bail early if required elements aren't present\n if (!appendTo && menuPosition !== 'fixed' || !computedPosition) return null;\n\n // same wrapper element whether fixed or portalled\n var menuWrapper = react.jsx(\"div\", _extends({\n ref: setMenuPortalElement\n }, getStyleProps(_objectSpread(_objectSpread({}, props), {}, {\n offset: computedPosition.offset,\n position: menuPosition,\n rect: computedPosition.rect\n }), 'menuPortal', {\n 'menu-portal': true\n }), innerProps), children);\n return react.jsx(PortalPlacementContext.Provider, {\n value: portalPlacementContext\n }, appendTo ? /*#__PURE__*/reactDom.createPortal(menuWrapper, appendTo) : menuWrapper);\n};\n\n// ==============================\n// Root Container\n// ==============================\n\nvar containerCSS = function containerCSS(_ref) {\n var isDisabled = _ref.isDisabled,\n isRtl = _ref.isRtl;\n return {\n label: 'container',\n direction: isRtl ? 'rtl' : undefined,\n pointerEvents: isDisabled ? 'none' : undefined,\n // cancel mouse events when disabled\n position: 'relative'\n };\n};\nvar SelectContainer = function SelectContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n isRtl = props.isRtl;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'container', {\n '--is-disabled': isDisabled,\n '--is-rtl': isRtl\n }), innerProps), children);\n};\n\n// ==============================\n// Value Container\n// ==============================\n\nvar valueContainerCSS = function valueContainerCSS(_ref2, unstyled) {\n var spacing = _ref2.theme.spacing,\n isMulti = _ref2.isMulti,\n hasValue = _ref2.hasValue,\n controlShouldRenderValue = _ref2.selectProps.controlShouldRenderValue;\n return _objectSpread({\n alignItems: 'center',\n display: isMulti && hasValue && controlShouldRenderValue ? 'flex' : 'grid',\n flex: 1,\n flexWrap: 'wrap',\n WebkitOverflowScrolling: 'touch',\n position: 'relative',\n overflow: 'hidden'\n }, unstyled ? {} : {\n padding: \"\".concat(spacing.baseUnit / 2, \"px \").concat(spacing.baseUnit * 2, \"px\")\n });\n};\nvar ValueContainer = function ValueContainer(props) {\n var children = props.children,\n innerProps = props.innerProps,\n isMulti = props.isMulti,\n hasValue = props.hasValue;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'valueContainer', {\n 'value-container': true,\n 'value-container--is-multi': isMulti,\n 'value-container--has-value': hasValue\n }), innerProps), children);\n};\n\n// ==============================\n// Indicator Container\n// ==============================\n\nvar indicatorsContainerCSS = function indicatorsContainerCSS() {\n return {\n alignItems: 'center',\n alignSelf: 'stretch',\n display: 'flex',\n flexShrink: 0\n };\n};\nvar IndicatorsContainer = function IndicatorsContainer(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'indicatorsContainer', {\n indicators: true\n }), innerProps), children);\n};\n\nvar _templateObject;\nvar _excluded$2 = [\"size\"],\n _excluded2 = [\"innerProps\", \"isRtl\", \"size\"];\nfunction _EMOTION_STRINGIFIED_CSS_ERROR__() { return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\"; }\n\n// ==============================\n// Dropdown & Clear Icons\n// ==============================\nvar _ref2 = process.env.NODE_ENV === \"production\" ? {\n name: \"8mmkcg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0\"\n} : {\n name: \"tj5bde-Svg\",\n styles: \"display:inline-block;fill:currentColor;line-height:1;stroke:currentColor;stroke-width:0;label:Svg;\",\n map: \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlCSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\",\n toString: _EMOTION_STRINGIFIED_CSS_ERROR__\n};\nvar Svg = function Svg(_ref) {\n var size = _ref.size,\n props = _objectWithoutProperties(_ref, _excluded$2);\n return react.jsx(\"svg\", _extends({\n height: size,\n width: size,\n viewBox: \"0 0 20 20\",\n \"aria-hidden\": \"true\",\n focusable: \"false\",\n css: _ref2\n }, props));\n};\nvar CrossIcon = function CrossIcon(props) {\n return react.jsx(Svg, _extends({\n size: 20\n }, props), react.jsx(\"path\", {\n d: \"M14.348 14.849c-0.469 0.469-1.229 0.469-1.697 0l-2.651-3.030-2.651 3.029c-0.469 0.469-1.229 0.469-1.697 0-0.469-0.469-0.469-1.229 0-1.697l2.758-3.15-2.759-3.152c-0.469-0.469-0.469-1.228 0-1.697s1.228-0.469 1.697 0l2.652 3.031 2.651-3.031c0.469-0.469 1.228-0.469 1.697 0s0.469 1.229 0 1.697l-2.758 3.152 2.758 3.15c0.469 0.469 0.469 1.229 0 1.698z\"\n }));\n};\nvar DownChevron = function DownChevron(props) {\n return react.jsx(Svg, _extends({\n size: 20\n }, props), react.jsx(\"path\", {\n d: \"M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z\"\n }));\n};\n\n// ==============================\n// Dropdown & Clear Buttons\n// ==============================\n\nvar baseCSS = function baseCSS(_ref3, unstyled) {\n var isFocused = _ref3.isFocused,\n _ref3$theme = _ref3.theme,\n baseUnit = _ref3$theme.spacing.baseUnit,\n colors = _ref3$theme.colors;\n return _objectSpread({\n label: 'indicatorContainer',\n display: 'flex',\n transition: 'color 150ms'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2,\n ':hover': {\n color: isFocused ? colors.neutral80 : colors.neutral40\n }\n });\n};\nvar dropdownIndicatorCSS = baseCSS;\nvar DropdownIndicator = function DropdownIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'dropdownIndicator', {\n indicator: true,\n 'dropdown-indicator': true\n }), innerProps), children || react.jsx(DownChevron, null));\n};\nvar clearIndicatorCSS = baseCSS;\nvar ClearIndicator = function ClearIndicator(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'clearIndicator', {\n indicator: true,\n 'clear-indicator': true\n }), innerProps), children || react.jsx(CrossIcon, null));\n};\n\n// ==============================\n// Separator\n// ==============================\n\nvar indicatorSeparatorCSS = function indicatorSeparatorCSS(_ref4, unstyled) {\n var isDisabled = _ref4.isDisabled,\n _ref4$theme = _ref4.theme,\n baseUnit = _ref4$theme.spacing.baseUnit,\n colors = _ref4$theme.colors;\n return _objectSpread({\n label: 'indicatorSeparator',\n alignSelf: 'stretch',\n width: 1\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral10 : colors.neutral20,\n marginBottom: baseUnit * 2,\n marginTop: baseUnit * 2\n });\n};\nvar IndicatorSeparator = function IndicatorSeparator(props) {\n var innerProps = props.innerProps;\n return react.jsx(\"span\", _extends({}, innerProps, getStyleProps(props, 'indicatorSeparator', {\n 'indicator-separator': true\n })));\n};\n\n// ==============================\n// Loading\n// ==============================\n\nvar loadingDotAnimations = react.keyframes(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n 0%, 80%, 100% { opacity: 0; }\\n 40% { opacity: 1; }\\n\"])));\nvar loadingIndicatorCSS = function loadingIndicatorCSS(_ref5, unstyled) {\n var isFocused = _ref5.isFocused,\n size = _ref5.size,\n _ref5$theme = _ref5.theme,\n colors = _ref5$theme.colors,\n baseUnit = _ref5$theme.spacing.baseUnit;\n return _objectSpread({\n label: 'loadingIndicator',\n display: 'flex',\n transition: 'color 150ms',\n alignSelf: 'center',\n fontSize: size,\n lineHeight: 1,\n marginRight: size,\n textAlign: 'center',\n verticalAlign: 'middle'\n }, unstyled ? {} : {\n color: isFocused ? colors.neutral60 : colors.neutral20,\n padding: baseUnit * 2\n });\n};\nvar LoadingDot = function LoadingDot(_ref6) {\n var delay = _ref6.delay,\n offset = _ref6.offset;\n return react.jsx(\"span\", {\n css: /*#__PURE__*/react.css({\n animation: \"\".concat(loadingDotAnimations, \" 1s ease-in-out \").concat(delay, \"ms infinite;\"),\n backgroundColor: 'currentColor',\n borderRadius: '1em',\n display: 'inline-block',\n marginLeft: offset ? '1em' : undefined,\n height: '1em',\n verticalAlign: 'top',\n width: '1em'\n }, process.env.NODE_ENV === \"production\" ? \"\" : \";label:LoadingDot;\", process.env.NODE_ENV === \"production\" ? \"\" : \"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGljYXRvcnMudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1RSSIsImZpbGUiOiJpbmRpY2F0b3JzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAanN4IGpzeCAqL1xuaW1wb3J0IHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsganN4LCBrZXlmcmFtZXMgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbmltcG9ydCB7XG4gIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lLFxuICBDU1NPYmplY3RXaXRoTGFiZWwsXG4gIEdyb3VwQmFzZSxcbn0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3R5bGVQcm9wcyB9IGZyb20gJy4uL3V0aWxzJztcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEljb25zXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgU3ZnID0gKHtcbiAgc2l6ZSxcbiAgLi4ucHJvcHNcbn06IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3ZnJ10gJiB7IHNpemU6IG51bWJlciB9KSA9PiAoXG4gIDxzdmdcbiAgICBoZWlnaHQ9e3NpemV9XG4gICAgd2lkdGg9e3NpemV9XG4gICAgdmlld0JveD1cIjAgMCAyMCAyMFwiXG4gICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICBmb2N1c2FibGU9XCJmYWxzZVwiXG4gICAgY3NzPXt7XG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIGZpbGw6ICdjdXJyZW50Q29sb3InLFxuICAgICAgbGluZUhlaWdodDogMSxcbiAgICAgIHN0cm9rZTogJ2N1cnJlbnRDb2xvcicsXG4gICAgICBzdHJva2VXaWR0aDogMCxcbiAgICB9fVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbik7XG5cbmV4cG9ydCB0eXBlIENyb3NzSWNvblByb3BzID0gSlNYLkludHJpbnNpY0VsZW1lbnRzWydzdmcnXSAmIHsgc2l6ZT86IG51bWJlciB9O1xuZXhwb3J0IGNvbnN0IENyb3NzSWNvbiA9IChwcm9wczogQ3Jvc3NJY29uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTE0LjM0OCAxNC44NDljLTAuNDY5IDAuNDY5LTEuMjI5IDAuNDY5LTEuNjk3IDBsLTIuNjUxLTMuMDMwLTIuNjUxIDMuMDI5Yy0wLjQ2OSAwLjQ2OS0xLjIyOSAwLjQ2OS0xLjY5NyAwLTAuNDY5LTAuNDY5LTAuNDY5LTEuMjI5IDAtMS42OTdsMi43NTgtMy4xNS0yLjc1OS0zLjE1MmMtMC40NjktMC40NjktMC40NjktMS4yMjggMC0xLjY5N3MxLjIyOC0wLjQ2OSAxLjY5NyAwbDIuNjUyIDMuMDMxIDIuNjUxLTMuMDMxYzAuNDY5LTAuNDY5IDEuMjI4LTAuNDY5IDEuNjk3IDBzMC40NjkgMS4yMjkgMCAxLjY5N2wtMi43NTggMy4xNTIgMi43NTggMy4xNWMwLjQ2OSAwLjQ2OSAwLjQ2OSAxLjIyOSAwIDEuNjk4elwiIC8+XG4gIDwvU3ZnPlxuKTtcbmV4cG9ydCB0eXBlIERvd25DaGV2cm9uUHJvcHMgPSBKU1guSW50cmluc2ljRWxlbWVudHNbJ3N2ZyddICYgeyBzaXplPzogbnVtYmVyIH07XG5leHBvcnQgY29uc3QgRG93bkNoZXZyb24gPSAocHJvcHM6IERvd25DaGV2cm9uUHJvcHMpID0+IChcbiAgPFN2ZyBzaXplPXsyMH0gey4uLnByb3BzfT5cbiAgICA8cGF0aCBkPVwiTTQuNTE2IDcuNTQ4YzAuNDM2LTAuNDQ2IDEuMDQzLTAuNDgxIDEuNTc2IDBsMy45MDggMy43NDcgMy45MDgtMy43NDdjMC41MzMtMC40ODEgMS4xNDEtMC40NDYgMS41NzQgMCAwLjQzNiAwLjQ0NSAwLjQwOCAxLjE5NyAwIDEuNjE1LTAuNDA2IDAuNDE4LTQuNjk1IDQuNTAyLTQuNjk1IDQuNTAyLTAuMjE3IDAuMjIzLTAuNTAyIDAuMzM1LTAuNzg3IDAuMzM1cy0wLjU3LTAuMTEyLTAuNzg5LTAuMzM1YzAgMC00LjI4Ny00LjA4NC00LjY5NS00LjUwMnMtMC40MzYtMS4xNyAwLTEuNjE1elwiIC8+XG4gIDwvU3ZnPlxuKTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBEcm9wZG93biAmIENsZWFyIEJ1dHRvbnNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8XG4gIE9wdGlvbiA9IHVua25vd24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuID0gYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPiA9IEdyb3VwQmFzZTxPcHRpb24+XG4+IGV4dGVuZHMgQ29tbW9uUHJvcHNBbmRDbGFzc05hbWU8T3B0aW9uLCBJc011bHRpLCBHcm91cD4ge1xuICAvKiogVGhlIGNoaWxkcmVuIHRvIGJlIHJlbmRlcmVkIGluc2lkZSB0aGUgaW5kaWNhdG9yLiAqL1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgLyoqIFByb3BzIHRoYXQgd2lsbCBiZSBwYXNzZWQgb24gdG8gdGhlIGNoaWxkcmVuLiAqL1xuICBpbm5lclByb3BzOiBKU1guSW50cmluc2ljRWxlbWVudHNbJ2RpdiddO1xuICAvKiogVGhlIGZvY3VzZWQgc3RhdGUgb2YgdGhlIHNlbGVjdC4gKi9cbiAgaXNGb2N1c2VkOiBib29sZWFuO1xuICBpc0Rpc2FibGVkOiBib29sZWFuO1xufVxuXG5jb25zdCBiYXNlQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHRoZW1lOiB7XG4gICAgICBzcGFjaW5nOiB7IGJhc2VVbml0IH0sXG4gICAgICBjb2xvcnMsXG4gICAgfSxcbiAgfTpcbiAgICB8IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbiAgICB8IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdpbmRpY2F0b3JDb250YWluZXInLFxuICBkaXNwbGF5OiAnZmxleCcsXG4gIHRyYW5zaXRpb246ICdjb2xvciAxNTBtcycsXG4gIC4uLih1bnN0eWxlZFxuICAgID8ge31cbiAgICA6IHtcbiAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsNjAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBwYWRkaW5nOiBiYXNlVW5pdCAqIDIsXG4gICAgICAgICc6aG92ZXInOiB7XG4gICAgICAgICAgY29sb3I6IGlzRm9jdXNlZCA/IGNvbG9ycy5uZXV0cmFsODAgOiBjb2xvcnMubmV1dHJhbDQwLFxuICAgICAgICB9LFxuICAgICAgfSksXG59KTtcblxuZXhwb3J0IGNvbnN0IGRyb3Bkb3duSW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBEcm9wZG93bkluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IERyb3Bkb3duSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2Ryb3Bkb3duSW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdkcm9wZG93bi1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPERvd25DaGV2cm9uIC8+fVxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBDbGVhckluZGljYXRvclByb3BzPFxuICBPcHRpb24gPSB1bmtub3duLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbiA9IGJvb2xlYW4sXG4gIEdyb3VwIGV4dGVuZHMgR3JvdXBCYXNlPE9wdGlvbj4gPSBHcm91cEJhc2U8T3B0aW9uPlxuPiBleHRlbmRzIENvbW1vblByb3BzQW5kQ2xhc3NOYW1lPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+IHtcbiAgLyoqIFRoZSBjaGlsZHJlbiB0byBiZSByZW5kZXJlZCBpbnNpZGUgdGhlIGluZGljYXRvci4gKi9cbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IGNsZWFySW5kaWNhdG9yQ1NTID0gYmFzZUNTUztcbmV4cG9ydCBjb25zdCBDbGVhckluZGljYXRvciA9IDxcbiAgT3B0aW9uLFxuICBJc011bHRpIGV4dGVuZHMgYm9vbGVhbixcbiAgR3JvdXAgZXh0ZW5kcyBHcm91cEJhc2U8T3B0aW9uPlxuPihcbiAgcHJvcHM6IENsZWFySW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBpbm5lclByb3BzIH0gPSBwcm9wcztcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICB7Li4uZ2V0U3R5bGVQcm9wcyhwcm9wcywgJ2NsZWFySW5kaWNhdG9yJywge1xuICAgICAgICBpbmRpY2F0b3I6IHRydWUsXG4gICAgICAgICdjbGVhci1pbmRpY2F0b3InOiB0cnVlLFxuICAgICAgfSl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4gfHwgPENyb3NzSWNvbiAvPn1cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU2VwYXJhdG9yXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuZXhwb3J0IGludGVyZmFjZSBJbmRpY2F0b3JTZXBhcmF0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIGlzRGlzYWJsZWQ6IGJvb2xlYW47XG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaW5uZXJQcm9wcz86IEpTWC5JbnRyaW5zaWNFbGVtZW50c1snc3BhbiddO1xufVxuXG5leHBvcnQgY29uc3QgaW5kaWNhdG9yU2VwYXJhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNEaXNhYmxlZCxcbiAgICB0aGVtZToge1xuICAgICAgc3BhY2luZzogeyBiYXNlVW5pdCB9LFxuICAgICAgY29sb3JzLFxuICAgIH0sXG4gIH06IEluZGljYXRvclNlcGFyYXRvclByb3BzPE9wdGlvbiwgSXNNdWx0aSwgR3JvdXA+LFxuICB1bnN0eWxlZDogYm9vbGVhblxuKTogQ1NTT2JqZWN0V2l0aExhYmVsID0+ICh7XG4gIGxhYmVsOiAnaW5kaWNhdG9yU2VwYXJhdG9yJyxcbiAgYWxpZ25TZWxmOiAnc3RyZXRjaCcsXG4gIHdpZHRoOiAxLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogaXNEaXNhYmxlZCA/IGNvbG9ycy5uZXV0cmFsMTAgOiBjb2xvcnMubmV1dHJhbDIwLFxuICAgICAgICBtYXJnaW5Cb3R0b206IGJhc2VVbml0ICogMixcbiAgICAgICAgbWFyZ2luVG9wOiBiYXNlVW5pdCAqIDIsXG4gICAgICB9KSxcbn0pO1xuXG5leHBvcnQgY29uc3QgSW5kaWNhdG9yU2VwYXJhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICBwcm9wczogSW5kaWNhdG9yU2VwYXJhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD5cbikgPT4ge1xuICBjb25zdCB7IGlubmVyUHJvcHMgfSA9IHByb3BzO1xuICByZXR1cm4gKFxuICAgIDxzcGFuXG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKHByb3BzLCAnaW5kaWNhdG9yU2VwYXJhdG9yJywge1xuICAgICAgICAnaW5kaWNhdG9yLXNlcGFyYXRvcic6IHRydWUsXG4gICAgICB9KX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBMb2FkaW5nXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuY29uc3QgbG9hZGluZ0RvdEFuaW1hdGlvbnMgPSBrZXlmcmFtZXNgXG4gIDAlLCA4MCUsIDEwMCUgeyBvcGFjaXR5OiAwOyB9XG4gIDQwJSB7IG9wYWNpdHk6IDE7IH1cbmA7XG5cbmV4cG9ydCBjb25zdCBsb2FkaW5nSW5kaWNhdG9yQ1NTID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KFxuICB7XG4gICAgaXNGb2N1c2VkLFxuICAgIHNpemUsXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9ycyxcbiAgICAgIHNwYWNpbmc6IHsgYmFzZVVuaXQgfSxcbiAgICB9LFxuICB9OiBMb2FkaW5nSW5kaWNhdG9yUHJvcHM8T3B0aW9uLCBJc011bHRpLCBHcm91cD4sXG4gIHVuc3R5bGVkOiBib29sZWFuXG4pOiBDU1NPYmplY3RXaXRoTGFiZWwgPT4gKHtcbiAgbGFiZWw6ICdsb2FkaW5nSW5kaWNhdG9yJyxcbiAgZGlzcGxheTogJ2ZsZXgnLFxuICB0cmFuc2l0aW9uOiAnY29sb3IgMTUwbXMnLFxuICBhbGlnblNlbGY6ICdjZW50ZXInLFxuICBmb250U2l6ZTogc2l6ZSxcbiAgbGluZUhlaWdodDogMSxcbiAgbWFyZ2luUmlnaHQ6IHNpemUsXG4gIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gIHZlcnRpY2FsQWxpZ246ICdtaWRkbGUnLFxuICAuLi4odW5zdHlsZWRcbiAgICA/IHt9XG4gICAgOiB7XG4gICAgICAgIGNvbG9yOiBpc0ZvY3VzZWQgPyBjb2xvcnMubmV1dHJhbDYwIDogY29sb3JzLm5ldXRyYWwyMCxcbiAgICAgICAgcGFkZGluZzogYmFzZVVuaXQgKiAyLFxuICAgICAgfSksXG59KTtcblxuaW50ZXJmYWNlIExvYWRpbmdEb3RQcm9wcyB7XG4gIGRlbGF5OiBudW1iZXI7XG4gIG9mZnNldDogYm9vbGVhbjtcbn1cbmNvbnN0IExvYWRpbmdEb3QgPSAoeyBkZWxheSwgb2Zmc2V0IH06IExvYWRpbmdEb3RQcm9wcykgPT4gKFxuICA8c3BhblxuICAgIGNzcz17e1xuICAgICAgYW5pbWF0aW9uOiBgJHtsb2FkaW5nRG90QW5pbWF0aW9uc30gMXMgZWFzZS1pbi1vdXQgJHtkZWxheX1tcyBpbmZpbml0ZTtgLFxuICAgICAgYmFja2dyb3VuZENvbG9yOiAnY3VycmVudENvbG9yJyxcbiAgICAgIGJvcmRlclJhZGl1czogJzFlbScsXG4gICAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgICAgIG1hcmdpbkxlZnQ6IG9mZnNldCA/ICcxZW0nIDogdW5kZWZpbmVkLFxuICAgICAgaGVpZ2h0OiAnMWVtJyxcbiAgICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgICAgd2lkdGg6ICcxZW0nLFxuICAgIH19XG4gIC8+XG4pO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRpbmdJbmRpY2F0b3JQcm9wczxcbiAgT3B0aW9uID0gdW5rbm93bixcbiAgSXNNdWx0aSBleHRlbmRzIGJvb2xlYW4gPSBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+ID0gR3JvdXBCYXNlPE9wdGlvbj5cbj4gZXh0ZW5kcyBDb21tb25Qcm9wc0FuZENsYXNzTmFtZTxPcHRpb24sIElzTXVsdGksIEdyb3VwPiB7XG4gIC8qKiBQcm9wcyB0aGF0IHdpbGwgYmUgcGFzc2VkIG9uIHRvIHRoZSBjaGlsZHJlbi4gKi9cbiAgaW5uZXJQcm9wczogSlNYLkludHJpbnNpY0VsZW1lbnRzWydkaXYnXTtcbiAgLyoqIFRoZSBmb2N1c2VkIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgaXNEaXNhYmxlZDogYm9vbGVhbjtcbiAgLyoqIFNldCBzaXplIG9mIHRoZSBjb250YWluZXIuICovXG4gIHNpemU6IG51bWJlcjtcbn1cbmV4cG9ydCBjb25zdCBMb2FkaW5nSW5kaWNhdG9yID0gPFxuICBPcHRpb24sXG4gIElzTXVsdGkgZXh0ZW5kcyBib29sZWFuLFxuICBHcm91cCBleHRlbmRzIEdyb3VwQmFzZTxPcHRpb24+XG4+KHtcbiAgaW5uZXJQcm9wcyxcbiAgaXNSdGwsXG4gIHNpemUgPSA0LFxuICAuLi5yZXN0UHJvcHNcbn06IExvYWRpbmdJbmRpY2F0b3JQcm9wczxPcHRpb24sIElzTXVsdGksIEdyb3VwPikgPT4ge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHsuLi5nZXRTdHlsZVByb3BzKFxuICAgICAgICB7IC4uLnJlc3RQcm9wcywgaW5uZXJQcm9wcywgaXNSdGwsIHNpemUgfSxcbiAgICAgICAgJ2xvYWRpbmdJbmRpY2F0b3InLFxuICAgICAgICB7XG4gICAgICAgICAgaW5kaWNhdG9yOiB0cnVlLFxuICAgICAgICAgICdsb2FkaW5nLWluZGljYXRvcic6IHRydWUsXG4gICAgICAgIH1cbiAgICAgICl9XG4gICAgICB7Li4uaW5uZXJQcm9wc31cbiAgICA+XG4gICAgICA8TG9hZGluZ0RvdCBkZWxheT17MH0gb2Zmc2V0PXtpc1J0bH0gLz5cbiAgICAgIDxMb2FkaW5nRG90IGRlbGF5PXsxNjB9IG9mZnNldCAvPlxuICAgICAgPExvYWRpbmdEb3QgZGVsYXk9ezMyMH0gb2Zmc2V0PXshaXNSdGx9IC8+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl19 */\")\n });\n};\nvar LoadingIndicator = function LoadingIndicator(_ref7) {\n var innerProps = _ref7.innerProps,\n isRtl = _ref7.isRtl,\n _ref7$size = _ref7.size,\n size = _ref7$size === void 0 ? 4 : _ref7$size,\n restProps = _objectWithoutProperties(_ref7, _excluded2);\n return react.jsx(\"div\", _extends({}, getStyleProps(_objectSpread(_objectSpread({}, restProps), {}, {\n innerProps: innerProps,\n isRtl: isRtl,\n size: size\n }), 'loadingIndicator', {\n indicator: true,\n 'loading-indicator': true\n }), innerProps), react.jsx(LoadingDot, {\n delay: 0,\n offset: isRtl\n }), react.jsx(LoadingDot, {\n delay: 160,\n offset: true\n }), react.jsx(LoadingDot, {\n delay: 320,\n offset: !isRtl\n }));\n};\n\nvar css$1 = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n _ref$theme = _ref.theme,\n colors = _ref$theme.colors,\n borderRadius = _ref$theme.borderRadius,\n spacing = _ref$theme.spacing;\n return _objectSpread({\n label: 'control',\n alignItems: 'center',\n cursor: 'default',\n display: 'flex',\n flexWrap: 'wrap',\n justifyContent: 'space-between',\n minHeight: spacing.controlHeight,\n outline: '0 !important',\n position: 'relative',\n transition: 'all 100ms'\n }, unstyled ? {} : {\n backgroundColor: isDisabled ? colors.neutral5 : colors.neutral0,\n borderColor: isDisabled ? colors.neutral10 : isFocused ? colors.primary : colors.neutral20,\n borderRadius: borderRadius,\n borderStyle: 'solid',\n borderWidth: 1,\n boxShadow: isFocused ? \"0 0 0 1px \".concat(colors.primary) : undefined,\n '&:hover': {\n borderColor: isFocused ? colors.primary : colors.neutral30\n }\n });\n};\nvar Control = function Control(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n innerRef = props.innerRef,\n innerProps = props.innerProps,\n menuIsOpen = props.menuIsOpen;\n return react.jsx(\"div\", _extends({\n ref: innerRef\n }, getStyleProps(props, 'control', {\n control: true,\n 'control--is-disabled': isDisabled,\n 'control--is-focused': isFocused,\n 'control--menu-is-open': menuIsOpen\n }), innerProps), children);\n};\nvar Control$1 = Control;\n\nvar _excluded$1 = [\"data\"];\nvar groupCSS = function groupCSS(_ref, unstyled) {\n var spacing = _ref.theme.spacing;\n return unstyled ? {} : {\n paddingBottom: spacing.baseUnit * 2,\n paddingTop: spacing.baseUnit * 2\n };\n};\nvar Group = function Group(props) {\n var children = props.children,\n cx = props.cx,\n getStyles = props.getStyles,\n getClassNames = props.getClassNames,\n Heading = props.Heading,\n headingProps = props.headingProps,\n innerProps = props.innerProps,\n label = props.label,\n theme = props.theme,\n selectProps = props.selectProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'group', {\n group: true\n }), innerProps), react.jsx(Heading, _extends({}, headingProps, {\n selectProps: selectProps,\n theme: theme,\n getStyles: getStyles,\n getClassNames: getClassNames,\n cx: cx\n }), label), react.jsx(\"div\", null, children));\n};\nvar groupHeadingCSS = function groupHeadingCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n colors = _ref2$theme.colors,\n spacing = _ref2$theme.spacing;\n return _objectSpread({\n label: 'group',\n cursor: 'default',\n display: 'block'\n }, unstyled ? {} : {\n color: colors.neutral40,\n fontSize: '75%',\n fontWeight: 500,\n marginBottom: '0.25em',\n paddingLeft: spacing.baseUnit * 3,\n paddingRight: spacing.baseUnit * 3,\n textTransform: 'uppercase'\n });\n};\nvar GroupHeading = function GroupHeading(props) {\n var _cleanCommonProps = cleanCommonProps(props);\n _cleanCommonProps.data;\n var innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded$1);\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'groupHeading', {\n 'group-heading': true\n }), innerProps));\n};\nvar Group$1 = Group;\n\nvar _excluded = [\"innerRef\", \"isDisabled\", \"isHidden\", \"inputClassName\"];\nvar inputCSS = function inputCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n value = _ref.value,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread(_objectSpread({\n visibility: isDisabled ? 'hidden' : 'visible',\n // force css to recompute when value change due to @emotion bug.\n // We can remove it whenever the bug is fixed.\n transform: value ? 'translateZ(0)' : ''\n }, containerStyle), unstyled ? {} : {\n margin: spacing.baseUnit / 2,\n paddingBottom: spacing.baseUnit / 2,\n paddingTop: spacing.baseUnit / 2,\n color: colors.neutral80\n });\n};\nvar spacingStyle = {\n gridArea: '1 / 2',\n font: 'inherit',\n minWidth: '2px',\n border: 0,\n margin: 0,\n outline: 0,\n padding: 0\n};\nvar containerStyle = {\n flex: '1 1 auto',\n display: 'inline-grid',\n gridArea: '1 / 1 / 2 / 3',\n gridTemplateColumns: '0 min-content',\n '&:after': _objectSpread({\n content: 'attr(data-value) \" \"',\n visibility: 'hidden',\n whiteSpace: 'pre'\n }, spacingStyle)\n};\nvar inputStyle = function inputStyle(isHidden) {\n return _objectSpread({\n label: 'input',\n color: 'inherit',\n background: 0,\n opacity: isHidden ? 0 : 1,\n width: '100%'\n }, spacingStyle);\n};\nvar Input = function Input(props) {\n var cx = props.cx,\n value = props.value;\n var _cleanCommonProps = cleanCommonProps(props),\n innerRef = _cleanCommonProps.innerRef,\n isDisabled = _cleanCommonProps.isDisabled,\n isHidden = _cleanCommonProps.isHidden,\n inputClassName = _cleanCommonProps.inputClassName,\n innerProps = _objectWithoutProperties(_cleanCommonProps, _excluded);\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'input', {\n 'input-container': true\n }), {\n \"data-value\": value || ''\n }), react.jsx(\"input\", _extends({\n className: cx({\n input: true\n }, inputClassName),\n ref: innerRef,\n style: inputStyle(isHidden),\n disabled: isDisabled\n }, innerProps)));\n};\nvar Input$1 = Input;\n\nvar multiValueCSS = function multiValueCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n borderRadius = _ref$theme.borderRadius,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'multiValue',\n display: 'flex',\n minWidth: 0\n }, unstyled ? {} : {\n backgroundColor: colors.neutral10,\n borderRadius: borderRadius / 2,\n margin: spacing.baseUnit / 2\n });\n};\nvar multiValueLabelCSS = function multiValueLabelCSS(_ref2, unstyled) {\n var _ref2$theme = _ref2.theme,\n borderRadius = _ref2$theme.borderRadius,\n colors = _ref2$theme.colors,\n cropWithEllipsis = _ref2.cropWithEllipsis;\n return _objectSpread({\n overflow: 'hidden',\n textOverflow: cropWithEllipsis || cropWithEllipsis === undefined ? 'ellipsis' : undefined,\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n color: colors.neutral80,\n fontSize: '85%',\n padding: 3,\n paddingLeft: 6\n });\n};\nvar multiValueRemoveCSS = function multiValueRemoveCSS(_ref3, unstyled) {\n var _ref3$theme = _ref3.theme,\n spacing = _ref3$theme.spacing,\n borderRadius = _ref3$theme.borderRadius,\n colors = _ref3$theme.colors,\n isFocused = _ref3.isFocused;\n return _objectSpread({\n alignItems: 'center',\n display: 'flex'\n }, unstyled ? {} : {\n borderRadius: borderRadius / 2,\n backgroundColor: isFocused ? colors.dangerLight : undefined,\n paddingLeft: spacing.baseUnit,\n paddingRight: spacing.baseUnit,\n ':hover': {\n backgroundColor: colors.dangerLight,\n color: colors.danger\n }\n });\n};\nvar MultiValueGeneric = function MultiValueGeneric(_ref4) {\n var children = _ref4.children,\n innerProps = _ref4.innerProps;\n return react.jsx(\"div\", innerProps, children);\n};\nvar MultiValueContainer = MultiValueGeneric;\nvar MultiValueLabel = MultiValueGeneric;\nfunction MultiValueRemove(_ref5) {\n var children = _ref5.children,\n innerProps = _ref5.innerProps;\n return react.jsx(\"div\", _extends({\n role: \"button\"\n }, innerProps), children || react.jsx(CrossIcon, {\n size: 14\n }));\n}\nvar MultiValue = function MultiValue(props) {\n var children = props.children,\n components = props.components,\n data = props.data,\n innerProps = props.innerProps,\n isDisabled = props.isDisabled,\n removeProps = props.removeProps,\n selectProps = props.selectProps;\n var Container = components.Container,\n Label = components.Label,\n Remove = components.Remove;\n return react.jsx(Container, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValue', {\n 'multi-value': true,\n 'multi-value--is-disabled': isDisabled\n })), innerProps),\n selectProps: selectProps\n }, react.jsx(Label, {\n data: data,\n innerProps: _objectSpread({}, getStyleProps(props, 'multiValueLabel', {\n 'multi-value__label': true\n })),\n selectProps: selectProps\n }, children), react.jsx(Remove, {\n data: data,\n innerProps: _objectSpread(_objectSpread({}, getStyleProps(props, 'multiValueRemove', {\n 'multi-value__remove': true\n })), {}, {\n 'aria-label': \"Remove \".concat(children || 'option')\n }, removeProps),\n selectProps: selectProps\n }));\n};\nvar MultiValue$1 = MultiValue;\n\nvar optionCSS = function optionCSS(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n isFocused = _ref.isFocused,\n isSelected = _ref.isSelected,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'option',\n cursor: 'default',\n display: 'block',\n fontSize: 'inherit',\n width: '100%',\n userSelect: 'none',\n WebkitTapHighlightColor: 'rgba(0, 0, 0, 0)'\n }, unstyled ? {} : {\n backgroundColor: isSelected ? colors.primary : isFocused ? colors.primary25 : 'transparent',\n color: isDisabled ? colors.neutral20 : isSelected ? colors.neutral0 : 'inherit',\n padding: \"\".concat(spacing.baseUnit * 2, \"px \").concat(spacing.baseUnit * 3, \"px\"),\n // provide some affordance on touch devices\n ':active': {\n backgroundColor: !isDisabled ? isSelected ? colors.primary : colors.primary50 : undefined\n }\n });\n};\nvar Option = function Option(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n isFocused = props.isFocused,\n isSelected = props.isSelected,\n innerRef = props.innerRef,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'option', {\n option: true,\n 'option--is-disabled': isDisabled,\n 'option--is-focused': isFocused,\n 'option--is-selected': isSelected\n }), {\n ref: innerRef,\n \"aria-disabled\": isDisabled\n }, innerProps), children);\n};\nvar Option$1 = Option;\n\nvar placeholderCSS = function placeholderCSS(_ref, unstyled) {\n var _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'placeholder',\n gridArea: '1 / 1 / 2 / 3'\n }, unstyled ? {} : {\n color: colors.neutral50,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar Placeholder = function Placeholder(props) {\n var children = props.children,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'placeholder', {\n placeholder: true\n }), innerProps), children);\n};\nvar Placeholder$1 = Placeholder;\n\nvar css = function css(_ref, unstyled) {\n var isDisabled = _ref.isDisabled,\n _ref$theme = _ref.theme,\n spacing = _ref$theme.spacing,\n colors = _ref$theme.colors;\n return _objectSpread({\n label: 'singleValue',\n gridArea: '1 / 1 / 2 / 3',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n }, unstyled ? {} : {\n color: isDisabled ? colors.neutral40 : colors.neutral80,\n marginLeft: spacing.baseUnit / 2,\n marginRight: spacing.baseUnit / 2\n });\n};\nvar SingleValue = function SingleValue(props) {\n var children = props.children,\n isDisabled = props.isDisabled,\n innerProps = props.innerProps;\n return react.jsx(\"div\", _extends({}, getStyleProps(props, 'singleValue', {\n 'single-value': true,\n 'single-value--is-disabled': isDisabled\n }), innerProps), children);\n};\nvar SingleValue$1 = SingleValue;\n\nvar components = {\n ClearIndicator: ClearIndicator,\n Control: Control$1,\n DropdownIndicator: DropdownIndicator,\n DownChevron: DownChevron,\n CrossIcon: CrossIcon,\n Group: Group$1,\n GroupHeading: GroupHeading,\n IndicatorsContainer: IndicatorsContainer,\n IndicatorSeparator: IndicatorSeparator,\n Input: Input$1,\n LoadingIndicator: LoadingIndicator,\n Menu: Menu$1,\n MenuList: MenuList,\n MenuPortal: MenuPortal,\n LoadingMessage: LoadingMessage,\n NoOptionsMessage: NoOptionsMessage,\n MultiValue: MultiValue$1,\n MultiValueContainer: MultiValueContainer,\n MultiValueLabel: MultiValueLabel,\n MultiValueRemove: MultiValueRemove,\n Option: Option$1,\n Placeholder: Placeholder$1,\n SelectContainer: SelectContainer,\n SingleValue: SingleValue$1,\n ValueContainer: ValueContainer\n};\nvar defaultComponents = function defaultComponents(props) {\n return _objectSpread(_objectSpread({}, components), props.components);\n};\n\nexports.MenuPlacer = MenuPlacer;\nexports.classNames = classNames;\nexports.cleanValue = cleanValue;\nexports.clearIndicatorCSS = clearIndicatorCSS;\nexports.components = components;\nexports.containerCSS = containerCSS;\nexports.css = css$1;\nexports.css$1 = css;\nexports.defaultComponents = defaultComponents;\nexports.dropdownIndicatorCSS = dropdownIndicatorCSS;\nexports.groupCSS = groupCSS;\nexports.groupHeadingCSS = groupHeadingCSS;\nexports.handleInputChange = handleInputChange;\nexports.indicatorSeparatorCSS = indicatorSeparatorCSS;\nexports.indicatorsContainerCSS = indicatorsContainerCSS;\nexports.inputCSS = inputCSS;\nexports.isDocumentElement = isDocumentElement;\nexports.isMobileDevice = isMobileDevice;\nexports.isTouchCapable = isTouchCapable;\nexports.loadingIndicatorCSS = loadingIndicatorCSS;\nexports.loadingMessageCSS = loadingMessageCSS;\nexports.menuCSS = menuCSS;\nexports.menuListCSS = menuListCSS;\nexports.menuPortalCSS = menuPortalCSS;\nexports.multiValueAsValue = multiValueAsValue;\nexports.multiValueCSS = multiValueCSS;\nexports.multiValueLabelCSS = multiValueLabelCSS;\nexports.multiValueRemoveCSS = multiValueRemoveCSS;\nexports.noOptionsMessageCSS = noOptionsMessageCSS;\nexports.noop = noop;\nexports.notNullish = notNullish;\nexports.optionCSS = optionCSS;\nexports.placeholderCSS = placeholderCSS;\nexports.removeProps = removeProps;\nexports.scrollIntoView = scrollIntoView;\nexports.singleValueAsValue = singleValueAsValue;\nexports.supportsPassiveEvents = supportsPassiveEvents;\nexports.valueContainerCSS = valueContainerCSS;\nexports.valueTernary = valueTernary;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar useStateManager = require('./useStateManager-7748b351.cjs.dev.js');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar React = require('react');\nvar Select = require('./Select-a02d53be.cjs.dev.js');\nvar react = require('@emotion/react');\nvar createCache = require('@emotion/cache');\nvar index = require('./index-b678006b.cjs.dev.js');\nrequire('@babel/runtime/helpers/objectSpread2');\nrequire('@babel/runtime/helpers/slicedToArray');\nrequire('@babel/runtime/helpers/objectWithoutProperties');\nrequire('@babel/runtime/helpers/classCallCheck');\nrequire('@babel/runtime/helpers/createClass');\nrequire('@babel/runtime/helpers/inherits');\nrequire('@babel/runtime/helpers/createSuper');\nrequire('@babel/runtime/helpers/toConsumableArray');\nrequire('memoize-one');\nrequire('@babel/runtime/helpers/typeof');\nrequire('@babel/runtime/helpers/taggedTemplateLiteral');\nrequire('@babel/runtime/helpers/defineProperty');\nrequire('react-dom');\nrequire('@floating-ui/dom');\nrequire('use-isomorphic-layout-effect');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar createCache__default = /*#__PURE__*/_interopDefault(createCache);\n\nvar StateManagedSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var baseSelectProps = useStateManager.useStateManager(props);\n return /*#__PURE__*/React__namespace.createElement(Select.Select, _extends({\n ref: ref\n }, baseSelectProps));\n});\nvar StateManagedSelect$1 = StateManagedSelect;\n\nvar NonceProvider = (function (_ref) {\n var nonce = _ref.nonce,\n children = _ref.children,\n cacheKey = _ref.cacheKey;\n var emotionCache = React.useMemo(function () {\n return createCache__default[\"default\"]({\n key: cacheKey,\n nonce: nonce\n });\n }, [cacheKey, nonce]);\n return /*#__PURE__*/React__namespace.createElement(react.CacheProvider, {\n value: emotionCache\n }, children);\n});\n\nexports.useStateManager = useStateManager.useStateManager;\nexports.createFilter = Select.createFilter;\nexports.defaultTheme = Select.defaultTheme;\nexports.mergeStyles = Select.mergeStyles;\nexports.components = index.components;\nexports.NonceProvider = NonceProvider;\nexports[\"default\"] = StateManagedSelect$1;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar useStateManager = require('./useStateManager-ce23061c.cjs.prod.js');\nvar _extends = require('@babel/runtime/helpers/extends');\nvar React = require('react');\nvar Select = require('./Select-e9ec2c9d.cjs.prod.js');\nvar react = require('@emotion/react');\nvar createCache = require('@emotion/cache');\nvar index = require('./index-7802bc67.cjs.prod.js');\nrequire('@babel/runtime/helpers/objectSpread2');\nrequire('@babel/runtime/helpers/slicedToArray');\nrequire('@babel/runtime/helpers/objectWithoutProperties');\nrequire('@babel/runtime/helpers/classCallCheck');\nrequire('@babel/runtime/helpers/createClass');\nrequire('@babel/runtime/helpers/inherits');\nrequire('@babel/runtime/helpers/createSuper');\nrequire('@babel/runtime/helpers/toConsumableArray');\nrequire('memoize-one');\nrequire('@babel/runtime/helpers/typeof');\nrequire('@babel/runtime/helpers/taggedTemplateLiteral');\nrequire('@babel/runtime/helpers/defineProperty');\nrequire('react-dom');\nrequire('@floating-ui/dom');\nrequire('use-isomorphic-layout-effect');\n\nfunction _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }\n\nfunction _interopNamespace(e) {\n if (e && e.__esModule) return e;\n var n = Object.create(null);\n if (e) {\n Object.keys(e).forEach(function (k) {\n if (k !== 'default') {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n }\n n[\"default\"] = e;\n return Object.freeze(n);\n}\n\nvar React__namespace = /*#__PURE__*/_interopNamespace(React);\nvar createCache__default = /*#__PURE__*/_interopDefault(createCache);\n\nvar StateManagedSelect = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var baseSelectProps = useStateManager.useStateManager(props);\n return /*#__PURE__*/React__namespace.createElement(Select.Select, _extends({\n ref: ref\n }, baseSelectProps));\n});\nvar StateManagedSelect$1 = StateManagedSelect;\n\nvar NonceProvider = (function (_ref) {\n var nonce = _ref.nonce,\n children = _ref.children,\n cacheKey = _ref.cacheKey;\n var emotionCache = React.useMemo(function () {\n return createCache__default[\"default\"]({\n key: cacheKey,\n nonce: nonce\n });\n }, [cacheKey, nonce]);\n return /*#__PURE__*/React__namespace.createElement(react.CacheProvider, {\n value: emotionCache\n }, children);\n});\n\nexports.useStateManager = useStateManager.useStateManager;\nexports.createFilter = Select.createFilter;\nexports.defaultTheme = Select.defaultTheme;\nexports.mergeStyles = Select.mergeStyles;\nexports.components = index.components;\nexports.NonceProvider = NonceProvider;\nexports[\"default\"] = StateManagedSelect$1;\n","'use strict';\n\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _slicedToArray = require('@babel/runtime/helpers/slicedToArray');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\nvar React = require('react');\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var _useState = React.useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n var _useState3 = React.useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n var _useState5 = React.useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n var onChange = React.useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = React.useCallback(function (value, actionMeta) {\n var newValue;\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = React.useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = React.useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexports.useStateManager = useStateManager;\n","'use strict';\n\nvar _objectSpread = require('@babel/runtime/helpers/objectSpread2');\nvar _slicedToArray = require('@babel/runtime/helpers/slicedToArray');\nvar _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');\nvar React = require('react');\n\nvar _excluded = [\"defaultInputValue\", \"defaultMenuIsOpen\", \"defaultValue\", \"inputValue\", \"menuIsOpen\", \"onChange\", \"onInputChange\", \"onMenuClose\", \"onMenuOpen\", \"value\"];\nfunction useStateManager(_ref) {\n var _ref$defaultInputValu = _ref.defaultInputValue,\n defaultInputValue = _ref$defaultInputValu === void 0 ? '' : _ref$defaultInputValu,\n _ref$defaultMenuIsOpe = _ref.defaultMenuIsOpen,\n defaultMenuIsOpen = _ref$defaultMenuIsOpe === void 0 ? false : _ref$defaultMenuIsOpe,\n _ref$defaultValue = _ref.defaultValue,\n defaultValue = _ref$defaultValue === void 0 ? null : _ref$defaultValue,\n propsInputValue = _ref.inputValue,\n propsMenuIsOpen = _ref.menuIsOpen,\n propsOnChange = _ref.onChange,\n propsOnInputChange = _ref.onInputChange,\n propsOnMenuClose = _ref.onMenuClose,\n propsOnMenuOpen = _ref.onMenuOpen,\n propsValue = _ref.value,\n restSelectProps = _objectWithoutProperties(_ref, _excluded);\n var _useState = React.useState(propsInputValue !== undefined ? propsInputValue : defaultInputValue),\n _useState2 = _slicedToArray(_useState, 2),\n stateInputValue = _useState2[0],\n setStateInputValue = _useState2[1];\n var _useState3 = React.useState(propsMenuIsOpen !== undefined ? propsMenuIsOpen : defaultMenuIsOpen),\n _useState4 = _slicedToArray(_useState3, 2),\n stateMenuIsOpen = _useState4[0],\n setStateMenuIsOpen = _useState4[1];\n var _useState5 = React.useState(propsValue !== undefined ? propsValue : defaultValue),\n _useState6 = _slicedToArray(_useState5, 2),\n stateValue = _useState6[0],\n setStateValue = _useState6[1];\n var onChange = React.useCallback(function (value, actionMeta) {\n if (typeof propsOnChange === 'function') {\n propsOnChange(value, actionMeta);\n }\n setStateValue(value);\n }, [propsOnChange]);\n var onInputChange = React.useCallback(function (value, actionMeta) {\n var newValue;\n if (typeof propsOnInputChange === 'function') {\n newValue = propsOnInputChange(value, actionMeta);\n }\n setStateInputValue(newValue !== undefined ? newValue : value);\n }, [propsOnInputChange]);\n var onMenuOpen = React.useCallback(function () {\n if (typeof propsOnMenuOpen === 'function') {\n propsOnMenuOpen();\n }\n setStateMenuIsOpen(true);\n }, [propsOnMenuOpen]);\n var onMenuClose = React.useCallback(function () {\n if (typeof propsOnMenuClose === 'function') {\n propsOnMenuClose();\n }\n setStateMenuIsOpen(false);\n }, [propsOnMenuClose]);\n var inputValue = propsInputValue !== undefined ? propsInputValue : stateInputValue;\n var menuIsOpen = propsMenuIsOpen !== undefined ? propsMenuIsOpen : stateMenuIsOpen;\n var value = propsValue !== undefined ? propsValue : stateValue;\n return _objectSpread(_objectSpread({}, restSelectProps), {}, {\n inputValue: inputValue,\n menuIsOpen: menuIsOpen,\n onChange: onChange,\n onInputChange: onInputChange,\n onMenuClose: onMenuClose,\n onMenuOpen: onMenuOpen,\n value: value\n });\n}\n\nexports.useStateManager = useStateManager;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar sheet = require('@emotion/sheet');\nvar stylis = require('stylis');\nrequire('@emotion/weak-memoize');\nrequire('@emotion/memoize');\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (stylis.token(character)) {\n case 0:\n // &\\f\n if (character === 38 && stylis.peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += stylis.identifier(stylis.position - 1);\n break;\n\n case 2:\n parsed[index] += stylis.delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = stylis.peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += stylis.from(character);\n }\n } while (character = stylis.next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return stylis.dealloc(toRules(stylis.alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // .length indicates if this rule contains pseudo or not\n !element.length) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [stylis.prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if ( key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stylis.stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== stylis.COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : stylis.rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = stylis.middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis$1 = function stylis$1(styles) {\n return stylis.serialize(stylis.compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis$1(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new sheet.StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexports.default = createCache;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n before = _this.prepend ? _this.container.firstChild : _this.before;\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-ms-input-placeholder|-moz-read-write|-moz-read-only){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexports.StyleSheet = StyleSheet;\n","/** @license React v17.0.2\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (\"production\" !== \"production\") {\n (function() {\n'use strict';\n\nvar _assign = require('object-assign');\n\n// TODO: this is special because it gets imported during build.\nvar ReactVersion = '17.0.2';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar REACT_ELEMENT_TYPE = 0xeac7;\nvar REACT_PORTAL_TYPE = 0xeaca;\nexports.Fragment = 0xeacb;\nexports.StrictMode = 0xeacc;\nexports.Profiler = 0xead2;\nvar REACT_PROVIDER_TYPE = 0xeacd;\nvar REACT_CONTEXT_TYPE = 0xeace;\nvar REACT_FORWARD_REF_TYPE = 0xead0;\nexports.Suspense = 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = 0xead8;\nvar REACT_MEMO_TYPE = 0xead3;\nvar REACT_LAZY_TYPE = 0xead4;\nvar REACT_BLOCK_TYPE = 0xead9;\nvar REACT_SERVER_BLOCK_TYPE = 0xeada;\nvar REACT_FUNDAMENTAL_TYPE = 0xead5;\nvar REACT_SCOPE_TYPE = 0xead7;\nvar REACT_OPAQUE_ID_TYPE = 0xeae0;\nvar REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;\nvar REACT_OFFSCREEN_TYPE = 0xeae2;\nvar REACT_LEGACY_HIDDEN_TYPE = 0xeae3;\n\nif (typeof Symbol === 'function' && Symbol.for) {\n var symbolFor = Symbol.for;\n REACT_ELEMENT_TYPE = symbolFor('react.element');\n REACT_PORTAL_TYPE = symbolFor('react.portal');\n exports.Fragment = symbolFor('react.fragment');\n exports.StrictMode = symbolFor('react.strict_mode');\n exports.Profiler = symbolFor('react.profiler');\n REACT_PROVIDER_TYPE = symbolFor('react.provider');\n REACT_CONTEXT_TYPE = symbolFor('react.context');\n REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');\n exports.Suspense = symbolFor('react.suspense');\n REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');\n REACT_MEMO_TYPE = symbolFor('react.memo');\n REACT_LAZY_TYPE = symbolFor('react.lazy');\n REACT_BLOCK_TYPE = symbolFor('react.block');\n REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');\n REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');\n REACT_SCOPE_TYPE = symbolFor('react.scope');\n REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');\n REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');\n REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');\n REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');\n}\n\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n transition: 0\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n {\n currentExtraStackFrame = stack;\n }\n}\n\n{\n ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n {\n currentExtraStackFrame = stack;\n }\n }; // Stack implementation injected by the current renderer.\n\n\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentExtraStackFrame) {\n stack += currentExtraStackFrame;\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\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\n printWarning('error', format, args);\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + item;\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nfunction getComponentName(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case exports.Fragment:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case exports.Profiler:\n return 'Profiler';\n\n case exports.StrictMode:\n return 'StrictMode';\n\n case exports.Suspense:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentName(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n {\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = key.replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof element === 'object' && element !== null && element.key != null) {\n // Explicit key\n return escape('' + element.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n var _child = children;\n var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows:\n\n var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n if (Array.isArray(mappedChild)) {\n var escapedChildKey = '';\n\n if (childKey != null) {\n escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n }\n\n mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n }\n\n array.push(mappedChild);\n }\n\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getElementKey(child, i);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n var iterableChildren = children;\n\n {\n // Warn about using Maps as children\n if (iteratorFn === iterableChildren.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(iterableChildren);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getElementKey(child, ii++);\n subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n }\n } else if (type === 'object') {\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). If you meant to render a collection of children, use an array instead.\" );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n var count = 0;\n mapIntoArray(children, result, '', '', function (child) {\n return func.call(context, child, count++);\n });\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n var n = 0;\n mapChildren(children, function () {\n n++; // Don't return anything\n });\n return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n mapChildren(children, function () {\n forEachFunc.apply(this, arguments); // Don't return anything.\n }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n return mapChildren(children, function (child) {\n return child;\n }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n var hasWarnedAboutDisplayNameOnConsumer = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n },\n displayName: {\n get: function () {\n return context.displayName;\n },\n set: function (displayName) {\n if (!hasWarnedAboutDisplayNameOnConsumer) {\n warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n hasWarnedAboutDisplayNameOnConsumer = true;\n }\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n if (payload._status === Uninitialized) {\n var ctor = payload._result;\n var thenable = ctor(); // Transition to the next state.\n\n var pending = payload;\n pending._status = Pending;\n pending._result = thenable;\n thenable.then(function (moduleObject) {\n if (payload._status === Pending) {\n var defaultExport = moduleObject.default;\n\n {\n if (defaultExport === undefined) {\n error('lazy: Expected the result of a dynamic import() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n ' + // Break up imports to avoid accidentally parsing them as dependencies.\n 'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n }\n } // Transition to the next state.\n\n\n var resolved = payload;\n resolved._status = Resolved;\n resolved._result = defaultExport;\n }\n }, function (error) {\n if (payload._status === Pending) {\n // Transition to the next state.\n var rejected = payload;\n rejected._status = Rejected;\n rejected._result = error;\n }\n });\n }\n\n if (payload._status === Resolved) {\n return payload._result;\n } else {\n throw payload._result;\n }\n}\n\nfunction lazy(ctor) {\n var payload = {\n // We use these fields to store the result.\n _status: -1,\n _result: ctor\n };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: payload,\n _init: lazyInitializer\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes; // $FlowFixMe\n\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n // $FlowFixMe\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n var elementType = {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (render.displayName == null) {\n render.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\n// Filter certain DOM attributes (e.g. src, href) if their values are empty strings.\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === exports.Fragment || type === exports.Profiler || type === REACT_DEBUG_TRACING_MODE_TYPE || type === exports.StrictMode || type === exports.Suspense || type === REACT_SUSPENSE_LIST_TYPE || type === REACT_LEGACY_HIDDEN_TYPE || enableScopeAPI ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_BLOCK_TYPE || type[0] === REACT_SERVER_BLOCK_TYPE) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n var elementType = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n\n {\n var ownName;\n Object.defineProperty(elementType, 'displayName', {\n enumerable: false,\n configurable: true,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n\n if (type.displayName == null) {\n type.displayName = name;\n }\n }\n });\n }\n\n return elementType;\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://reactjs.org/link/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: _assign({}, props, {\n value: prevLog\n }),\n info: _assign({}, props, {\n value: prevInfo\n }),\n warn: _assign({}, props, {\n value: prevWarn\n }),\n error: _assign({}, props, {\n value: prevError\n }),\n group: _assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: _assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: _assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher$1.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at ');\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher$1.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case exports.Suspense:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_BLOCK_TYPE:\n return describeFunctionComponentFrame(type._render);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(Object.prototype.hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n setExtraStackFrame(stack);\n } else {\n setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n {\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n if (typeof node !== 'object') {\n return;\n }\n\n if (Array.isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentName(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentName(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\nfunction createElementWithValidation(type, props, children) {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n {\n error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n }\n\n var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === exports.Fragment) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n /* eslint-disable no-new */\n\n new Map([[frozenObject, null]]);\n new Set([frozenObject]);\n /* eslint-enable no-new */\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.PureComponent = PureComponent;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useEffect = useEffect;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.version = ReactVersion;\n })();\n}\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar A={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},B={};function C(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}C.prototype.isReactComponent={};C.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(z(85));this.updater.enqueueSetState(this,a,b,\"setState\")};C.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};\nfunction D(){}D.prototype=C.prototype;function E(a,b,c){this.props=a;this.context=b;this.refs=B;this.updater=c||A}var F=E.prototype=new D;F.constructor=E;l(F,C.prototype);F.isPureReactComponent=!0;var G={current:null},H=Object.prototype.hasOwnProperty,I={key:!0,ref:!0,__self:!0,__source:!0};\nfunction J(a,b,c){var e,d={},k=null,h=null;if(null!=b)for(e in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)H.call(b,e)&&!I.hasOwnProperty(e)&&(d[e]=b[e]);var g=arguments.length-2;if(1===g)d.children=c;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];d.children=f}if(a&&a.defaultProps)for(e in g=a.defaultProps,g)void 0===d[e]&&(d[e]=g[e]);return{$$typeof:n,type:a,key:k,ref:h,props:d,_owner:G.current}}\nfunction K(a,b){return{$$typeof:n,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function L(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===n}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var M=/\\/+/g;function N(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction O(a,b,c,e,d){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case n:case p:h=!0}}if(h)return h=a,d=d(h),a=\"\"===e?\".\"+N(h,0):e,Array.isArray(d)?(c=\"\",null!=a&&(c=a.replace(M,\"$&/\")+\"/\"),O(d,b,c,\"\",function(a){return a})):null!=d&&(L(d)&&(d=K(d,c+(!d.key||h&&h.key===d.key?\"\":(\"\"+d.key).replace(M,\"$&/\")+\"/\")+a)),b.push(d)),1;h=0;e=\"\"===e?\".\":e+\":\";if(Array.isArray(a))for(var g=\n0;g<a.length;g++){k=a[g];var f=e+N(k,g);h+=O(k,b,c,f,d)}else if(f=y(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=e+N(k,g++),h+=O(k,b,c,f,d);else if(\"object\"===k)throw b=\"\"+a,Error(z(31,\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b));return h}function P(a,b,c){if(null==a)return a;var e=[],d=0;O(a,e,\"\",\"\",function(a){return b.call(c,a,d++)});return e}\nfunction Q(a){if(-1===a._status){var b=a._result;b=b();a._status=0;a._result=b;b.then(function(b){0===a._status&&(b=b.default,a._status=1,a._result=b)},function(b){0===a._status&&(a._status=2,a._result=b)})}if(1===a._status)return a._result;throw a._result;}var R={current:null};function S(){var a=R.current;if(null===a)throw Error(z(321));return a}var T={ReactCurrentDispatcher:R,ReactCurrentBatchConfig:{transition:0},ReactCurrentOwner:G,IsSomeRendererActing:{current:!1},assign:l};\nexports.Children={map:P,forEach:function(a,b,c){P(a,function(){b.apply(this,arguments)},c)},count:function(a){var b=0;P(a,function(){b++});return b},toArray:function(a){return P(a,function(a){return a})||[]},only:function(a){if(!L(a))throw Error(z(143));return a}};exports.Component=C;exports.PureComponent=E;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T;\nexports.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(z(267,a));var e=l({},a.props),d=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=G.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)H.call(b,f)&&!I.hasOwnProperty(f)&&(e[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)e.children=c;else if(1<f){g=Array(f);for(var m=0;m<f;m++)g[m]=arguments[m+2];e.children=g}return{$$typeof:n,type:a.type,\nkey:d,ref:k,props:e,_owner:h}};exports.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:r,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:q,_context:a};return a.Consumer=a};exports.createElement=J;exports.createFactory=function(a){var b=J.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};exports.forwardRef=function(a){return{$$typeof:t,render:a}};exports.isValidElement=L;\nexports.lazy=function(a){return{$$typeof:v,_payload:{_status:-1,_result:a},_init:Q}};exports.memo=function(a,b){return{$$typeof:u,type:a,compare:void 0===b?null:b}};exports.useCallback=function(a,b){return S().useCallback(a,b)};exports.useContext=function(a,b){return S().useContext(a,b)};exports.useDebugValue=function(){};exports.useEffect=function(a,b){return S().useEffect(a,b)};exports.useImperativeHandle=function(a,b,c){return S().useImperativeHandle(a,b,c)};\nexports.useLayoutEffect=function(a,b){return S().useLayoutEffect(a,b)};exports.useMemo=function(a,b){return S().useMemo(a,b)};exports.useReducer=function(a,b,c){return S().useReducer(a,b,c)};exports.useRef=function(a){return S().useRef(a)};exports.useState=function(a){return S().useState(a)};exports.version=\"17.0.2\";\n","/** @license React v0.20.2\n * scheduler-tracing.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (\"production\" !== \"production\") {\n (function() {\n'use strict';\n\nvar DEFAULT_THREAD_ID = 0; // Counters used to generate unique IDs.\n\nvar interactionIDCounter = 0;\nvar threadIDCounter = 0; // Set of currently traced interactions.\n// Interactions \"stack\"–\n// Meaning that newly traced interactions are appended to the previously active set.\n// When an interaction goes out of scope, the previous set (if any) is restored.\n\nexports.__interactionsRef = null; // Listener(s) to notify when interactions begin and end.\n\nexports.__subscriberRef = null;\n\n{\n exports.__interactionsRef = {\n current: new Set()\n };\n exports.__subscriberRef = {\n current: null\n };\n}\nfunction unstable_clear(callback) {\n\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = new Set();\n\n try {\n return callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n }\n}\nfunction unstable_getCurrent() {\n {\n return exports.__interactionsRef.current;\n }\n}\nfunction unstable_getThreadID() {\n return ++threadIDCounter;\n}\nfunction unstable_trace(name, timestamp, callback) {\n var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;\n\n var interaction = {\n __count: 1,\n id: interactionIDCounter++,\n name: name,\n timestamp: timestamp\n };\n var prevInteractions = exports.__interactionsRef.current; // Traced interactions should stack/accumulate.\n // To do that, clone the current interactions.\n // The previous set will be restored upon completion.\n\n var interactions = new Set(prevInteractions);\n interactions.add(interaction);\n exports.__interactionsRef.current = interactions;\n var subscriber = exports.__subscriberRef.current;\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onInteractionTraced(interaction);\n }\n } finally {\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(interactions, threadID);\n }\n } finally {\n try {\n returnValue = callback();\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStopped(interactions, threadID);\n }\n } finally {\n interaction.__count--; // If no async work was scheduled for this interaction,\n // Notify subscribers that it's completed.\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n }\n }\n }\n }\n\n return returnValue;\n}\nfunction unstable_wrap(callback) {\n var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;\n\n var wrappedInteractions = exports.__interactionsRef.current;\n var subscriber = exports.__subscriberRef.current;\n\n if (subscriber !== null) {\n subscriber.onWorkScheduled(wrappedInteractions, threadID);\n } // Update the pending async work count for the current interactions.\n // Update after calling subscribers in case of error.\n\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count++;\n });\n var hasRun = false;\n\n function wrapped() {\n var prevInteractions = exports.__interactionsRef.current;\n exports.__interactionsRef.current = wrappedInteractions;\n subscriber = exports.__subscriberRef.current;\n\n try {\n var returnValue;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkStarted(wrappedInteractions, threadID);\n }\n } finally {\n try {\n returnValue = callback.apply(undefined, arguments);\n } finally {\n exports.__interactionsRef.current = prevInteractions;\n\n if (subscriber !== null) {\n subscriber.onWorkStopped(wrappedInteractions, threadID);\n }\n }\n }\n\n return returnValue;\n } finally {\n if (!hasRun) {\n // We only expect a wrapped function to be executed once,\n // But in the event that it's executed more than once–\n // Only decrement the outstanding interaction counts once.\n hasRun = true; // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber !== null && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n }\n }\n\n wrapped.cancel = function cancel() {\n subscriber = exports.__subscriberRef.current;\n\n try {\n if (subscriber !== null) {\n subscriber.onWorkCanceled(wrappedInteractions, threadID);\n }\n } finally {\n // Update pending async counts for all wrapped interactions.\n // If this was the last scheduled async work for any of them,\n // Mark them as completed.\n wrappedInteractions.forEach(function (interaction) {\n interaction.__count--;\n\n if (subscriber && interaction.__count === 0) {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n }\n });\n }\n };\n\n return wrapped;\n}\n\nvar subscribers = null;\n\n{\n subscribers = new Set();\n}\n\nfunction unstable_subscribe(subscriber) {\n {\n subscribers.add(subscriber);\n\n if (subscribers.size === 1) {\n exports.__subscriberRef.current = {\n onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,\n onInteractionTraced: onInteractionTraced,\n onWorkCanceled: onWorkCanceled,\n onWorkScheduled: onWorkScheduled,\n onWorkStarted: onWorkStarted,\n onWorkStopped: onWorkStopped\n };\n }\n }\n}\nfunction unstable_unsubscribe(subscriber) {\n {\n subscribers.delete(subscriber);\n\n if (subscribers.size === 0) {\n exports.__subscriberRef.current = null;\n }\n }\n}\n\nfunction onInteractionTraced(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionTraced(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onInteractionScheduledWorkCompleted(interaction) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onInteractionScheduledWorkCompleted(interaction);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkScheduled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkScheduled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStarted(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStarted(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkStopped(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkStopped(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nfunction onWorkCanceled(interactions, threadID) {\n var didCatchError = false;\n var caughtError = null;\n subscribers.forEach(function (subscriber) {\n try {\n subscriber.onWorkCanceled(interactions, threadID);\n } catch (error) {\n if (!didCatchError) {\n didCatchError = true;\n caughtError = error;\n }\n }\n });\n\n if (didCatchError) {\n throw caughtError;\n }\n}\n\nexports.unstable_clear = unstable_clear;\nexports.unstable_getCurrent = unstable_getCurrent;\nexports.unstable_getThreadID = unstable_getThreadID;\nexports.unstable_subscribe = unstable_subscribe;\nexports.unstable_trace = unstable_trace;\nexports.unstable_unsubscribe = unstable_unsubscribe;\nexports.unstable_wrap = unstable_wrap;\n })();\n}\n","/** @license React v0.20.2\n * scheduler-tracing.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=0;exports.__interactionsRef=null;exports.__subscriberRef=null;exports.unstable_clear=function(a){return a()};exports.unstable_getCurrent=function(){return null};exports.unstable_getThreadID=function(){return++b};exports.unstable_subscribe=function(){};exports.unstable_trace=function(a,d,c){return c()};exports.unstable_unsubscribe=function(){};exports.unstable_wrap=function(a){return a};\n","/** @license React v0.20.2\n * scheduler.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (\"production\" !== \"production\") {\n (function() {\n'use strict';\n\nvar enableSchedulerDebugging = false;\nvar enableProfiling = false;\n\nvar requestHostCallback;\nvar requestHostTimeout;\nvar cancelHostTimeout;\nvar requestPaint;\nvar hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\n\nif (hasPerformanceNow) {\n var localPerformance = performance;\n\n exports.unstable_now = function () {\n return localPerformance.now();\n };\n} else {\n var localDate = Date;\n var initialTime = localDate.now();\n\n exports.unstable_now = function () {\n return localDate.now() - initialTime;\n };\n}\n\nif ( // If Scheduler runs in a non-DOM environment, it falls back to a naive\n// implementation using setTimeout.\ntypeof window === 'undefined' || // Check if MessageChannel is supported, too.\ntypeof MessageChannel !== 'function') {\n // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,\n // fallback to a naive implementation.\n var _callback = null;\n var _timeoutID = null;\n\n var _flushCallback = function () {\n if (_callback !== null) {\n try {\n var currentTime = exports.unstable_now();\n var hasRemainingTime = true;\n\n _callback(hasRemainingTime, currentTime);\n\n _callback = null;\n } catch (e) {\n setTimeout(_flushCallback, 0);\n throw e;\n }\n }\n };\n\n requestHostCallback = function (cb) {\n if (_callback !== null) {\n // Protect against re-entrancy.\n setTimeout(requestHostCallback, 0, cb);\n } else {\n _callback = cb;\n setTimeout(_flushCallback, 0);\n }\n };\n\n requestHostTimeout = function (cb, ms) {\n _timeoutID = setTimeout(cb, ms);\n };\n\n cancelHostTimeout = function () {\n clearTimeout(_timeoutID);\n };\n\n exports.unstable_shouldYield = function () {\n return false;\n };\n\n requestPaint = exports.unstable_forceFrameRate = function () {};\n} else {\n // Capture local references to native APIs, in case a polyfill overrides them.\n var _setTimeout = window.setTimeout;\n var _clearTimeout = window.clearTimeout;\n\n if (typeof console !== 'undefined') {\n // TODO: Scheduler no longer requires these methods to be polyfilled. But\n // maybe we want to continue warning if they don't exist, to preserve the\n // option to rely on it in the future?\n var requestAnimationFrame = window.requestAnimationFrame;\n var cancelAnimationFrame = window.cancelAnimationFrame;\n\n if (typeof requestAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support requestAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n\n if (typeof cancelAnimationFrame !== 'function') {\n // Using console['error'] to evade Babel and ESLint\n console['error'](\"This browser doesn't support cancelAnimationFrame. \" + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');\n }\n }\n\n var isMessageLoopRunning = false;\n var scheduledHostCallback = null;\n var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main\n // thread, like user events. By default, it yields multiple times per frame.\n // It does not attempt to align with frame boundaries, since most tasks don't\n // need to be frame aligned; for those that do, use requestAnimationFrame.\n\n var yieldInterval = 5;\n var deadline = 0; // TODO: Make this configurable\n\n {\n // `isInputPending` is not available. Since we have no way of knowing if\n // there's pending input, always yield at the end of the frame.\n exports.unstable_shouldYield = function () {\n return exports.unstable_now() >= deadline;\n }; // Since we yield every frame regardless, `requestPaint` has no effect.\n\n\n requestPaint = function () {};\n }\n\n exports.unstable_forceFrameRate = function (fps) {\n if (fps < 0 || fps > 125) {\n // Using console['error'] to evade Babel and ESLint\n console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');\n return;\n }\n\n if (fps > 0) {\n yieldInterval = Math.floor(1000 / fps);\n } else {\n // reset the framerate\n yieldInterval = 5;\n }\n };\n\n var performWorkUntilDeadline = function () {\n if (scheduledHostCallback !== null) {\n var currentTime = exports.unstable_now(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync\n // cycle. This means there's always time remaining at the beginning of\n // the message event.\n\n deadline = currentTime + yieldInterval;\n var hasTimeRemaining = true;\n\n try {\n var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);\n\n if (!hasMoreWork) {\n isMessageLoopRunning = false;\n scheduledHostCallback = null;\n } else {\n // If there's more work, schedule the next message event at the end\n // of the preceding one.\n port.postMessage(null);\n }\n } catch (error) {\n // If a scheduler task throws, exit the current browser task so the\n // error can be observed.\n port.postMessage(null);\n throw error;\n }\n } else {\n isMessageLoopRunning = false;\n } // Yielding to the browser will give it a chance to paint, so we can\n };\n\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = performWorkUntilDeadline;\n\n requestHostCallback = function (callback) {\n scheduledHostCallback = callback;\n\n if (!isMessageLoopRunning) {\n isMessageLoopRunning = true;\n port.postMessage(null);\n }\n };\n\n requestHostTimeout = function (callback, ms) {\n taskTimeoutID = _setTimeout(function () {\n callback(exports.unstable_now());\n }, ms);\n };\n\n cancelHostTimeout = function () {\n _clearTimeout(taskTimeoutID);\n\n taskTimeoutID = -1;\n };\n}\n\nfunction push(heap, node) {\n var index = heap.length;\n heap.push(node);\n siftUp(heap, node, index);\n}\nfunction peek(heap) {\n var first = heap[0];\n return first === undefined ? null : first;\n}\nfunction pop(heap) {\n var first = heap[0];\n\n if (first !== undefined) {\n var last = heap.pop();\n\n if (last !== first) {\n heap[0] = last;\n siftDown(heap, last, 0);\n }\n\n return first;\n } else {\n return null;\n }\n}\n\nfunction siftUp(heap, node, i) {\n var index = i;\n\n while (true) {\n var parentIndex = index - 1 >>> 1;\n var parent = heap[parentIndex];\n\n if (parent !== undefined && compare(parent, node) > 0) {\n // The parent is larger. Swap positions.\n heap[parentIndex] = node;\n heap[index] = parent;\n index = parentIndex;\n } else {\n // The parent is smaller. Exit.\n return;\n }\n }\n}\n\nfunction siftDown(heap, node, i) {\n var index = i;\n var length = heap.length;\n\n while (index < length) {\n var leftIndex = (index + 1) * 2 - 1;\n var left = heap[leftIndex];\n var rightIndex = leftIndex + 1;\n var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.\n\n if (left !== undefined && compare(left, node) < 0) {\n if (right !== undefined && compare(right, left) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n heap[index] = left;\n heap[leftIndex] = node;\n index = leftIndex;\n }\n } else if (right !== undefined && compare(right, node) < 0) {\n heap[index] = right;\n heap[rightIndex] = node;\n index = rightIndex;\n } else {\n // Neither child is smaller. Exit.\n return;\n }\n }\n}\n\nfunction compare(a, b) {\n // Compare sort index first, then task id.\n var diff = a.sortIndex - b.sortIndex;\n return diff !== 0 ? diff : a.id - b.id;\n}\n\n// TODO: Use symbols?\nvar ImmediatePriority = 1;\nvar UserBlockingPriority = 2;\nvar NormalPriority = 3;\nvar LowPriority = 4;\nvar IdlePriority = 5;\n\nfunction markTaskErrored(task, ms) {\n}\n\n/* eslint-disable no-var */\n// Math.pow(2, 30) - 1\n// 0b111111111111111111111111111111\n\nvar maxSigned31BitInt = 1073741823; // Times out immediately\n\nvar IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out\n\nvar USER_BLOCKING_PRIORITY_TIMEOUT = 250;\nvar NORMAL_PRIORITY_TIMEOUT = 5000;\nvar LOW_PRIORITY_TIMEOUT = 10000; // Never times out\n\nvar IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap\n\nvar taskQueue = [];\nvar timerQueue = []; // Incrementing id counter. Used to maintain insertion order.\n\nvar taskIdCounter = 1; // Pausing the scheduler is useful for debugging.\nvar currentTask = null;\nvar currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.\n\nvar isPerformingWork = false;\nvar isHostCallbackScheduled = false;\nvar isHostTimeoutScheduled = false;\n\nfunction advanceTimers(currentTime) {\n // Check for tasks that are no longer delayed and add them to the queue.\n var timer = peek(timerQueue);\n\n while (timer !== null) {\n if (timer.callback === null) {\n // Timer was cancelled.\n pop(timerQueue);\n } else if (timer.startTime <= currentTime) {\n // Timer fired. Transfer to the task queue.\n pop(timerQueue);\n timer.sortIndex = timer.expirationTime;\n push(taskQueue, timer);\n } else {\n // Remaining timers are pending.\n return;\n }\n\n timer = peek(timerQueue);\n }\n}\n\nfunction handleTimeout(currentTime) {\n isHostTimeoutScheduled = false;\n advanceTimers(currentTime);\n\n if (!isHostCallbackScheduled) {\n if (peek(taskQueue) !== null) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n }\n }\n}\n\nfunction flushWork(hasTimeRemaining, initialTime) {\n\n\n isHostCallbackScheduled = false;\n\n if (isHostTimeoutScheduled) {\n // We scheduled a timeout but it's no longer needed. Cancel it.\n isHostTimeoutScheduled = false;\n cancelHostTimeout();\n }\n\n isPerformingWork = true;\n var previousPriorityLevel = currentPriorityLevel;\n\n try {\n if (enableProfiling) {\n try {\n return workLoop(hasTimeRemaining, initialTime);\n } catch (error) {\n if (currentTask !== null) {\n var currentTime = exports.unstable_now();\n markTaskErrored(currentTask, currentTime);\n currentTask.isQueued = false;\n }\n\n throw error;\n }\n } else {\n // No catch in prod code path.\n return workLoop(hasTimeRemaining, initialTime);\n }\n } finally {\n currentTask = null;\n currentPriorityLevel = previousPriorityLevel;\n isPerformingWork = false;\n }\n}\n\nfunction workLoop(hasTimeRemaining, initialTime) {\n var currentTime = initialTime;\n advanceTimers(currentTime);\n currentTask = peek(taskQueue);\n\n while (currentTask !== null && !(enableSchedulerDebugging )) {\n if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || exports.unstable_shouldYield())) {\n // This currentTask hasn't expired, and we've reached the deadline.\n break;\n }\n\n var callback = currentTask.callback;\n\n if (typeof callback === 'function') {\n currentTask.callback = null;\n currentPriorityLevel = currentTask.priorityLevel;\n var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n\n var continuationCallback = callback(didUserCallbackTimeout);\n currentTime = exports.unstable_now();\n\n if (typeof continuationCallback === 'function') {\n currentTask.callback = continuationCallback;\n } else {\n\n if (currentTask === peek(taskQueue)) {\n pop(taskQueue);\n }\n }\n\n advanceTimers(currentTime);\n } else {\n pop(taskQueue);\n }\n\n currentTask = peek(taskQueue);\n } // Return whether there's additional work\n\n\n if (currentTask !== null) {\n return true;\n } else {\n var firstTimer = peek(timerQueue);\n\n if (firstTimer !== null) {\n requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);\n }\n\n return false;\n }\n}\n\nfunction unstable_runWithPriority(priorityLevel, eventHandler) {\n switch (priorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n case LowPriority:\n case IdlePriority:\n break;\n\n default:\n priorityLevel = NormalPriority;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_next(eventHandler) {\n var priorityLevel;\n\n switch (currentPriorityLevel) {\n case ImmediatePriority:\n case UserBlockingPriority:\n case NormalPriority:\n // Shift down to normal priority\n priorityLevel = NormalPriority;\n break;\n\n default:\n // Anything lower than normal priority should remain at the current level.\n priorityLevel = currentPriorityLevel;\n break;\n }\n\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = priorityLevel;\n\n try {\n return eventHandler();\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n}\n\nfunction unstable_wrapCallback(callback) {\n var parentPriorityLevel = currentPriorityLevel;\n return function () {\n // This is a fork of runWithPriority, inlined for performance.\n var previousPriorityLevel = currentPriorityLevel;\n currentPriorityLevel = parentPriorityLevel;\n\n try {\n return callback.apply(this, arguments);\n } finally {\n currentPriorityLevel = previousPriorityLevel;\n }\n };\n}\n\nfunction unstable_scheduleCallback(priorityLevel, callback, options) {\n var currentTime = exports.unstable_now();\n var startTime;\n\n if (typeof options === 'object' && options !== null) {\n var delay = options.delay;\n\n if (typeof delay === 'number' && delay > 0) {\n startTime = currentTime + delay;\n } else {\n startTime = currentTime;\n }\n } else {\n startTime = currentTime;\n }\n\n var timeout;\n\n switch (priorityLevel) {\n case ImmediatePriority:\n timeout = IMMEDIATE_PRIORITY_TIMEOUT;\n break;\n\n case UserBlockingPriority:\n timeout = USER_BLOCKING_PRIORITY_TIMEOUT;\n break;\n\n case IdlePriority:\n timeout = IDLE_PRIORITY_TIMEOUT;\n break;\n\n case LowPriority:\n timeout = LOW_PRIORITY_TIMEOUT;\n break;\n\n case NormalPriority:\n default:\n timeout = NORMAL_PRIORITY_TIMEOUT;\n break;\n }\n\n var expirationTime = startTime + timeout;\n var newTask = {\n id: taskIdCounter++,\n callback: callback,\n priorityLevel: priorityLevel,\n startTime: startTime,\n expirationTime: expirationTime,\n sortIndex: -1\n };\n\n if (startTime > currentTime) {\n // This is a delayed task.\n newTask.sortIndex = startTime;\n push(timerQueue, newTask);\n\n if (peek(taskQueue) === null && newTask === peek(timerQueue)) {\n // All tasks are delayed, and this is the task with the earliest delay.\n if (isHostTimeoutScheduled) {\n // Cancel an existing timeout.\n cancelHostTimeout();\n } else {\n isHostTimeoutScheduled = true;\n } // Schedule a timeout.\n\n\n requestHostTimeout(handleTimeout, startTime - currentTime);\n }\n } else {\n newTask.sortIndex = expirationTime;\n push(taskQueue, newTask);\n // wait until the next time we yield.\n\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n }\n\n return newTask;\n}\n\nfunction unstable_pauseExecution() {\n}\n\nfunction unstable_continueExecution() {\n\n if (!isHostCallbackScheduled && !isPerformingWork) {\n isHostCallbackScheduled = true;\n requestHostCallback(flushWork);\n }\n}\n\nfunction unstable_getFirstCallbackNode() {\n return peek(taskQueue);\n}\n\nfunction unstable_cancelCallback(task) {\n // remove from the queue because you can't remove arbitrary nodes from an\n // array based heap, only the first one.)\n\n\n task.callback = null;\n}\n\nfunction unstable_getCurrentPriorityLevel() {\n return currentPriorityLevel;\n}\n\nvar unstable_requestPaint = requestPaint;\nvar unstable_Profiling = null;\n\nexports.unstable_IdlePriority = IdlePriority;\nexports.unstable_ImmediatePriority = ImmediatePriority;\nexports.unstable_LowPriority = LowPriority;\nexports.unstable_NormalPriority = NormalPriority;\nexports.unstable_Profiling = unstable_Profiling;\nexports.unstable_UserBlockingPriority = UserBlockingPriority;\nexports.unstable_cancelCallback = unstable_cancelCallback;\nexports.unstable_continueExecution = unstable_continueExecution;\nexports.unstable_getCurrentPriorityLevel = unstable_getCurrentPriorityLevel;\nexports.unstable_getFirstCallbackNode = unstable_getFirstCallbackNode;\nexports.unstable_next = unstable_next;\nexports.unstable_pauseExecution = unstable_pauseExecution;\nexports.unstable_requestPaint = unstable_requestPaint;\nexports.unstable_runWithPriority = unstable_runWithPriority;\nexports.unstable_scheduleCallback = unstable_scheduleCallback;\nexports.unstable_wrapCallback = unstable_wrapCallback;\n })();\n}\n","/** @license React v0.20.2\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';var f,g,h,k;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}}\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var t=null,u=null,w=function(){if(null!==t)try{var a=exports.unstable_now();t(!0,a);t=null}catch(b){throw setTimeout(w,0),b;}};f=function(a){null!==t?setTimeout(f,0,a):(t=a,setTimeout(w,0))};g=function(a,b){u=setTimeout(a,b)};h=function(){clearTimeout(u)};exports.unstable_shouldYield=function(){return!1};k=exports.unstable_forceFrameRate=function(){}}else{var x=window.setTimeout,y=window.clearTimeout;if(\"undefined\"!==typeof console){var z=\nwindow.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\");\"function\"!==typeof z&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\")}var A=!1,B=null,C=-1,D=5,E=0;exports.unstable_shouldYield=function(){return exports.unstable_now()>=\nE};k=function(){};exports.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\"):D=0<a?Math.floor(1E3/a):5};var F=new MessageChannel,G=F.port2;F.port1.onmessage=function(){if(null!==B){var a=exports.unstable_now();E=a+D;try{B(!0,a)?G.postMessage(null):(A=!1,B=null)}catch(b){throw G.postMessage(null),b;}}else A=!1};f=function(a){B=a;A||(A=!0,G.postMessage(null))};g=function(a,b){C=\nx(function(){a(exports.unstable_now())},b)};h=function(){y(C);C=-1}}function H(a,b){var c=a.length;a.push(b);a:for(;;){var d=c-1>>>1,e=a[d];if(void 0!==e&&0<I(e,b))a[d]=b,a[c]=e,c=d;else break a}}function J(a){a=a[0];return void 0===a?null:a}\nfunction K(a){var b=a[0];if(void 0!==b){var c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length;d<e;){var m=2*(d+1)-1,n=a[m],v=m+1,r=a[v];if(void 0!==n&&0>I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.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(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=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:N++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","'use strict';\n\nif (\"production\" === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nif (\"production\" === 'production') {\n module.exports = require('./cjs/scheduler-tracing.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler-tracing.development.js');\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span') ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span') ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill.js');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};","var candidateSelectors = [\n 'input',\n 'select',\n 'textarea',\n 'a[href]',\n 'button',\n '[tabindex]',\n 'audio[controls]',\n 'video[controls]',\n '[contenteditable]:not([contenteditable=\"false\"])',\n];\nvar candidateSelector = candidateSelectors.join(',');\n\nvar matches = typeof Element === 'undefined'\n ? function () {}\n : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\n\nfunction tabbable(el, options) {\n options = options || {};\n\n var regularTabbables = [];\n var orderedTabbables = [];\n\n var candidates = el.querySelectorAll(candidateSelector);\n\n if (options.includeContainer) {\n if (matches.call(el, candidateSelector)) {\n candidates = Array.prototype.slice.apply(candidates);\n candidates.unshift(el);\n }\n }\n\n var i, candidate, candidateTabindex;\n for (i = 0; i < candidates.length; i++) {\n candidate = candidates[i];\n\n if (!isNodeMatchingSelectorTabbable(candidate)) continue;\n\n candidateTabindex = getTabindex(candidate);\n if (candidateTabindex === 0) {\n regularTabbables.push(candidate);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n node: candidate,\n });\n }\n }\n\n var tabbableNodes = orderedTabbables\n .sort(sortOrderedTabbables)\n .map(function(a) { return a.node })\n .concat(regularTabbables);\n\n return tabbableNodes;\n}\n\ntabbable.isTabbable = isTabbable;\ntabbable.isFocusable = isFocusable;\n\nfunction isNodeMatchingSelectorTabbable(node) {\n if (\n !isNodeMatchingSelectorFocusable(node)\n || isNonTabbableRadio(node)\n || getTabindex(node) < 0\n ) {\n return false;\n }\n return true;\n}\n\nfunction isTabbable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, candidateSelector) === false) return false;\n return isNodeMatchingSelectorTabbable(node);\n}\n\nfunction isNodeMatchingSelectorFocusable(node) {\n if (\n node.disabled\n || isHiddenInput(node)\n || isHidden(node)\n ) {\n return false;\n }\n return true;\n}\n\nvar focusableCandidateSelector = candidateSelectors.concat('iframe').join(',');\nfunction isFocusable(node) {\n if (!node) throw new Error('No node provided');\n if (matches.call(node, focusableCandidateSelector) === false) return false;\n return isNodeMatchingSelectorFocusable(node);\n}\n\nfunction getTabindex(node) {\n var tabindexAttr = parseInt(node.getAttribute('tabindex'), 10);\n if (!isNaN(tabindexAttr)) return tabindexAttr;\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (isContentEditable(node)) return 0;\n return node.tabIndex;\n}\n\nfunction sortOrderedTabbables(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n}\n\nfunction isContentEditable(node) {\n return node.contentEditable === 'true';\n}\n\nfunction isInput(node) {\n return node.tagName === 'INPUT';\n}\n\nfunction isHiddenInput(node) {\n return isInput(node) && node.type === 'hidden';\n}\n\nfunction isRadio(node) {\n return isInput(node) && node.type === 'radio';\n}\n\nfunction isNonTabbableRadio(node) {\n return isRadio(node) && !isTabbableRadio(node);\n}\n\nfunction getCheckedRadio(nodes) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked) {\n return nodes[i];\n }\n }\n}\n\nfunction isTabbableRadio(node) {\n if (!node.name) return true;\n // This won't account for the edge case where you have radio groups with the same\n // in separate forms on the same page.\n var radioSet = node.ownerDocument.querySelectorAll('input[type=\"radio\"][name=\"' + node.name + '\"]');\n var checked = getCheckedRadio(radioSet);\n return !checked || checked === node;\n}\n\nfunction isHidden(node) {\n // offsetParent being null will allow detecting cases where an element is invisible or inside an invisible element,\n // as long as the element does not use position: fixed. For them, their visibility has to be checked directly as well.\n return node.offsetParent === null || getComputedStyle(node).visibility === 'hidden';\n}\n\nmodule.exports = tabbable;\n","/*!\n * URI.js - Mutating URLs\n * IPv6 Support\n *\n * Version: 1.19.2\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.IPv6 = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n /*\n var _in = \"fe80:0000:0000:0000:0204:61ff:fe9d:f156\";\n var _out = IPv6.best(_in);\n var _expected = \"fe80::204:61ff:fe9d:f156\";\n\n console.log(_in, _out, _expected, _out === _expected);\n */\n\n // save current IPv6 variable, if any\n var _IPv6 = root && root.IPv6;\n\n function bestPresentation(address) {\n // based on:\n // Javascript to test an IPv6 address for proper format, and to\n // present the \"best text representation\" according to IETF Draft RFC at\n // http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04\n // 8 Feb 2010 Rich Brown, Dartware, LLC\n // Please feel free to use this code as long as you provide a link to\n // http://www.intermapper.com\n // http://intermapper.com/support/tools/IPV6-Validator.aspx\n // http://download.dartware.com/thirdparty/ipv6validator.js\n\n var _address = address.toLowerCase();\n var segments = _address.split(':');\n var length = segments.length;\n var total = 8;\n\n // trim colons (:: or ::a:b:c… or …a:b:c::)\n if (segments[0] === '' && segments[1] === '' && segments[2] === '') {\n // must have been ::\n // remove first two items\n segments.shift();\n segments.shift();\n } else if (segments[0] === '' && segments[1] === '') {\n // must have been ::xxxx\n // remove the first item\n segments.shift();\n } else if (segments[length - 1] === '' && segments[length - 2] === '') {\n // must have been xxxx::\n segments.pop();\n }\n\n length = segments.length;\n\n // adjust total segments for IPv4 trailer\n if (segments[length - 1].indexOf('.') !== -1) {\n // found a \".\" which means IPv4\n total = 7;\n }\n\n // fill empty segments them with \"0000\"\n var pos;\n for (pos = 0; pos < length; pos++) {\n if (segments[pos] === '') {\n break;\n }\n }\n\n if (pos < total) {\n segments.splice(pos, 1, '0000');\n while (segments.length < total) {\n segments.splice(pos, 0, '0000');\n }\n }\n\n // strip leading zeros\n var _segments;\n for (var i = 0; i < total; i++) {\n _segments = segments[i].split('');\n for (var j = 0; j < 3 ; j++) {\n if (_segments[0] === '0' && _segments.length > 1) {\n _segments.splice(0,1);\n } else {\n break;\n }\n }\n\n segments[i] = _segments.join('');\n }\n\n // find longest sequence of zeroes and coalesce them into one segment\n var best = -1;\n var _best = 0;\n var _current = 0;\n var current = -1;\n var inzeroes = false;\n // i; already declared\n\n for (i = 0; i < total; i++) {\n if (inzeroes) {\n if (segments[i] === '0') {\n _current += 1;\n } else {\n inzeroes = false;\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n }\n } else {\n if (segments[i] === '0') {\n inzeroes = true;\n current = i;\n _current = 1;\n }\n }\n }\n\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n\n if (_best > 1) {\n segments.splice(best, _best, '');\n }\n\n length = segments.length;\n\n // assemble remaining segments\n var result = '';\n if (segments[0] === '') {\n result = ':';\n }\n\n for (i = 0; i < length; i++) {\n result += segments[i];\n if (i === length - 1) {\n break;\n }\n\n result += ':';\n }\n\n if (segments[length - 1] === '') {\n result += ':';\n }\n\n return result;\n }\n\n function noConflict() {\n /*jshint validthis: true */\n if (root.IPv6 === this) {\n root.IPv6 = _IPv6;\n }\n\n return this;\n }\n\n return {\n best: bestPresentation,\n noConflict: noConflict\n };\n}));\n","/*!\n * URI.js - Mutating URLs\n * Second Level Domain (SLD) Support\n *\n * Version: 1.19.2\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.SecondLevelDomains = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n // save current SecondLevelDomains variable, if any\n var _SecondLevelDomains = root && root.SecondLevelDomains;\n\n var SLD = {\n // list of known Second Level Domains\n // converted list of SLDs from https://github.com/gavingmiller/second-level-domains\n // ----\n // publicsuffix.org is more current and actually used by a couple of browsers internally.\n // downside is it also contains domains like \"dyndns.org\" - which is fine for the security\n // issues browser have to deal with (SOP for cookies, etc) - but is way overboard for URI.js\n // ----\n list: {\n 'ac':' com gov mil net org ',\n 'ae':' ac co gov mil name net org pro sch ',\n 'af':' com edu gov net org ',\n 'al':' com edu gov mil net org ',\n 'ao':' co ed gv it og pb ',\n 'ar':' com edu gob gov int mil net org tur ',\n 'at':' ac co gv or ',\n 'au':' asn com csiro edu gov id net org ',\n 'ba':' co com edu gov mil net org rs unbi unmo unsa untz unze ',\n 'bb':' biz co com edu gov info net org store tv ',\n 'bh':' biz cc com edu gov info net org ',\n 'bn':' com edu gov net org ',\n 'bo':' com edu gob gov int mil net org tv ',\n 'br':' adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ',\n 'bs':' com edu gov net org ',\n 'bz':' du et om ov rg ',\n 'ca':' ab bc mb nb nf nl ns nt nu on pe qc sk yk ',\n 'ck':' biz co edu gen gov info net org ',\n 'cn':' ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ',\n 'co':' com edu gov mil net nom org ',\n 'cr':' ac c co ed fi go or sa ',\n 'cy':' ac biz com ekloges gov ltd name net org parliament press pro tm ',\n 'do':' art com edu gob gov mil net org sld web ',\n 'dz':' art asso com edu gov net org pol ',\n 'ec':' com edu fin gov info med mil net org pro ',\n 'eg':' com edu eun gov mil name net org sci ',\n 'er':' com edu gov ind mil net org rochest w ',\n 'es':' com edu gob nom org ',\n 'et':' biz com edu gov info name net org ',\n 'fj':' ac biz com info mil name net org pro ',\n 'fk':' ac co gov net nom org ',\n 'fr':' asso com f gouv nom prd presse tm ',\n 'gg':' co net org ',\n 'gh':' com edu gov mil org ',\n 'gn':' ac com gov net org ',\n 'gr':' com edu gov mil net org ',\n 'gt':' com edu gob ind mil net org ',\n 'gu':' com edu gov net org ',\n 'hk':' com edu gov idv net org ',\n 'hu':' 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ',\n 'id':' ac co go mil net or sch web ',\n 'il':' ac co gov idf k12 muni net org ',\n 'in':' ac co edu ernet firm gen gov i ind mil net nic org res ',\n 'iq':' com edu gov i mil net org ',\n 'ir':' ac co dnssec gov i id net org sch ',\n 'it':' edu gov ',\n 'je':' co net org ',\n 'jo':' com edu gov mil name net org sch ',\n 'jp':' ac ad co ed go gr lg ne or ',\n 'ke':' ac co go info me mobi ne or sc ',\n 'kh':' com edu gov mil net org per ',\n 'ki':' biz com de edu gov info mob net org tel ',\n 'km':' asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ',\n 'kn':' edu gov net org ',\n 'kr':' ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ',\n 'kw':' com edu gov net org ',\n 'ky':' com edu gov net org ',\n 'kz':' com edu gov mil net org ',\n 'lb':' com edu gov net org ',\n 'lk':' assn com edu gov grp hotel int ltd net ngo org sch soc web ',\n 'lr':' com edu gov net org ',\n 'lv':' asn com conf edu gov id mil net org ',\n 'ly':' com edu gov id med net org plc sch ',\n 'ma':' ac co gov m net org press ',\n 'mc':' asso tm ',\n 'me':' ac co edu gov its net org priv ',\n 'mg':' com edu gov mil nom org prd tm ',\n 'mk':' com edu gov inf name net org pro ',\n 'ml':' com edu gov net org presse ',\n 'mn':' edu gov org ',\n 'mo':' com edu gov net org ',\n 'mt':' com edu gov net org ',\n 'mv':' aero biz com coop edu gov info int mil museum name net org pro ',\n 'mw':' ac co com coop edu gov int museum net org ',\n 'mx':' com edu gob net org ',\n 'my':' com edu gov mil name net org sch ',\n 'nf':' arts com firm info net other per rec store web ',\n 'ng':' biz com edu gov mil mobi name net org sch ',\n 'ni':' ac co com edu gob mil net nom org ',\n 'np':' com edu gov mil net org ',\n 'nr':' biz com edu gov info net org ',\n 'om':' ac biz co com edu gov med mil museum net org pro sch ',\n 'pe':' com edu gob mil net nom org sld ',\n 'ph':' com edu gov i mil net ngo org ',\n 'pk':' biz com edu fam gob gok gon gop gos gov net org web ',\n 'pl':' art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ',\n 'pr':' ac biz com edu est gov info isla name net org pro prof ',\n 'ps':' com edu gov net org plo sec ',\n 'pw':' belau co ed go ne or ',\n 'ro':' arts com firm info nom nt org rec store tm www ',\n 'rs':' ac co edu gov in org ',\n 'sb':' com edu gov net org ',\n 'sc':' com edu gov net org ',\n 'sh':' co com edu gov net nom org ',\n 'sl':' com edu gov net org ',\n 'st':' co com consulado edu embaixada gov mil net org principe saotome store ',\n 'sv':' com edu gob org red ',\n 'sz':' ac co org ',\n 'tr':' av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ',\n 'tt':' aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ',\n 'tw':' club com ebiz edu game gov idv mil net org ',\n 'mu':' ac co com gov net or org ',\n 'mz':' ac co edu gov org ',\n 'na':' co com ',\n 'nz':' ac co cri geek gen govt health iwi maori mil net org parliament school ',\n 'pa':' abo ac com edu gob ing med net nom org sld ',\n 'pt':' com edu gov int net nome org publ ',\n 'py':' com edu gov mil net org ',\n 'qa':' com edu gov mil net org ',\n 're':' asso com nom ',\n 'ru':' ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ',\n 'rw':' ac co com edu gouv gov int mil net ',\n 'sa':' com edu gov med net org pub sch ',\n 'sd':' com edu gov info med net org tv ',\n 'se':' a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ',\n 'sg':' com edu gov idn net org per ',\n 'sn':' art com edu gouv org perso univ ',\n 'sy':' com edu gov mil net news org ',\n 'th':' ac co go in mi net or ',\n 'tj':' ac biz co com edu go gov info int mil name net nic org test web ',\n 'tn':' agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ',\n 'tz':' ac co go ne or ',\n 'ua':' biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ',\n 'ug':' ac co go ne or org sc ',\n 'uk':' ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ',\n 'us':' dni fed isa kids nsn ',\n 'uy':' com edu gub mil net org ',\n 've':' co com edu gob info mil net org web ',\n 'vi':' co com k12 net org ',\n 'vn':' ac biz com edu gov health info int name net org pro ',\n 'ye':' co com gov ltd me net org plc ',\n 'yu':' ac co edu gov org ',\n 'za':' ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ',\n 'zm':' ac co com edu gov net org sch ',\n // https://en.wikipedia.org/wiki/CentralNic#Second-level_domains\n 'com': 'ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ',\n 'net': 'gb jp se uk ',\n 'org': 'ae',\n 'de': 'com '\n },\n // gorhill 2013-10-25: Using indexOf() instead Regexp(). Significant boost\n // in both performance and memory footprint. No initialization required.\n // http://jsperf.com/uri-js-sld-regex-vs-binary-search/4\n // Following methods use lastIndexOf() rather than array.split() in order\n // to avoid any memory allocations.\n has: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') >= 0;\n },\n is: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset >= 0) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(0, tldOffset) + ' ') >= 0;\n },\n get: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return null;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return null;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return null;\n }\n if (sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') < 0) {\n return null;\n }\n return domain.slice(sldOffset+1);\n },\n noConflict: function(){\n if (root.SecondLevelDomains === this) {\n root.SecondLevelDomains = _SecondLevelDomains;\n }\n return this;\n }\n };\n\n return SLD;\n}));\n","/*! https://mths.be/punycode v1.4.0 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useDebouncedCallback_1 = require(\"./useDebouncedCallback\");\nfunction valueEquality(left, right) {\n return left === right;\n}\nfunction adjustFunctionValueOfSetState(value) {\n return typeof value === 'function' ? function () { return value; } : value;\n}\nfunction useStateIgnoreCallback(initialState) {\n var _a = react_1.useState(adjustFunctionValueOfSetState(initialState)), state = _a[0], setState = _a[1];\n var setStateIgnoreCallback = react_1.useCallback(function (value) { return setState(adjustFunctionValueOfSetState(value)); }, []);\n return [state, setStateIgnoreCallback];\n}\nfunction useDebounce(value, delay, options) {\n var eq = (options && options.equalityFn) || valueEquality;\n var _a = useStateIgnoreCallback(value), state = _a[0], dispatch = _a[1];\n var debounced = useDebouncedCallback_1.default(react_1.useCallback(function (value) { return dispatch(value); }, [dispatch]), delay, options);\n var previousValue = react_1.useRef(value);\n react_1.useEffect(function () {\n // We need to use this condition otherwise we will run debounce timer for the first render (including maxWait option)\n if (!eq(previousValue.current, value)) {\n debounced(value);\n previousValue.current = value;\n }\n }, [value, debounced, eq]);\n return [state, { cancel: debounced.cancel, isPending: debounced.isPending, flush: debounced.flush }];\n}\nexports.default = useDebounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn. The debounced function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * debounced function. Subsequent calls to the debounced function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n * used (if available, otherwise it will be setTimeout(...,0)).\n * @param {Object} [options={}] The options object.\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.leading=false]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {number} [options.maxWait]\n * Specify invoking on the trailing edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * const resizeHandler = useDebouncedCallback(calculateLayout, 150);\n * window.addEventListener('resize', resizeHandler)\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * const clickHandler = useDebouncedCallback(sendMail, 300, {\n * leading: true,\n * trailing: false,\n * })\n * <button onClick={clickHandler}>click me</button>\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = useDebouncedCallback(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * source.addEventListener('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * window.addEventListener('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nfunction useDebouncedCallback(func, wait, options) {\n var _this = this;\n var lastCallTime = react_1.useRef(null);\n var lastInvokeTime = react_1.useRef(0);\n var timerId = react_1.useRef(null);\n var lastArgs = react_1.useRef([]);\n var lastThis = react_1.useRef();\n var result = react_1.useRef();\n var funcRef = react_1.useRef(func);\n var mounted = react_1.useRef(true);\n funcRef.current = func;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n var useRAF = !wait && wait !== 0 && typeof window !== 'undefined';\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n options = options || {};\n var leading = !!options.leading;\n var trailing = 'trailing' in options ? !!options.trailing : true; // `true` by default\n var maxing = 'maxWait' in options;\n var maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : null;\n react_1.useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n // You may have a question, why we have so many code under the useMemo definition.\n //\n // This was made as we want to escape from useCallback hell and\n // not to initialize a number of functions each time useDebouncedCallback is called.\n //\n // It means that we have less garbage for our GC calls which improves performance.\n // Also, it makes this library smaller.\n //\n // And the last reason, that the code without lots of useCallback with deps is easier to read.\n // You have only one place for that.\n var debounced = react_1.useMemo(function () {\n var invokeFunc = function (time) {\n var args = lastArgs.current;\n var thisArg = lastThis.current;\n lastArgs.current = lastThis.current = null;\n lastInvokeTime.current = time;\n return (result.current = funcRef.current.apply(thisArg, args));\n };\n var startTimer = function (pendingFunc, wait) {\n if (useRAF)\n cancelAnimationFrame(timerId.current);\n timerId.current = useRAF ? requestAnimationFrame(pendingFunc) : setTimeout(pendingFunc, wait);\n };\n var shouldInvoke = function (time) {\n if (!mounted.current)\n return false;\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (!lastCallTime.current ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait));\n };\n var trailingEdge = function (time) {\n timerId.current = null;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs.current) {\n return invokeFunc(time);\n }\n lastArgs.current = lastThis.current = null;\n return result.current;\n };\n var timerExpired = function () {\n var time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // https://github.com/xnimorz/use-debounce/issues/97\n if (!mounted.current) {\n return;\n }\n // Remaining wait calculation\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n var timeWaiting = wait - timeSinceLastCall;\n var remainingWait = maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n // Restart the timer\n startTimer(timerExpired, remainingWait);\n };\n var func = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n lastArgs.current = args;\n lastThis.current = _this;\n lastCallTime.current = time;\n if (isInvoking) {\n if (!timerId.current && mounted.current) {\n // Reset any `maxWait` timer.\n lastInvokeTime.current = lastCallTime.current;\n // Start the timer for the trailing edge.\n startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(lastCallTime.current) : result.current;\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime.current);\n }\n }\n if (!timerId.current) {\n startTimer(timerExpired, wait);\n }\n return result.current;\n };\n func.cancel = function () {\n if (timerId.current) {\n useRAF ? cancelAnimationFrame(timerId.current) : clearTimeout(timerId.current);\n }\n lastInvokeTime.current = 0;\n lastArgs.current = lastCallTime.current = lastThis.current = timerId.current = null;\n };\n func.isPending = function () {\n return !!timerId.current;\n };\n func.flush = function () {\n return !timerId.current ? result.current : trailingEdge(Date.now());\n };\n return func;\n }, [leading, maxing, wait, maxWait, trailing, useRAF]);\n return debounced;\n}\nexports.default = useDebouncedCallback;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar useDebouncedCallback_1 = require(\"./useDebouncedCallback\");\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds (or once per browser frame). The throttled function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `throttle` and `debounce`.\n *\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0]\n * The number of milliseconds to throttle invocations to; if omitted,\n * `requestAnimationFrame` is used (if available, otherwise it will be setTimeout(...,0)).\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * const scrollHandler = useThrottledCallback(updatePosition, 100)\n * window.addEventListener('scroll', scrollHandler)\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * const { callback } = useThrottledCallback(renewToken, 300000, { 'trailing': false })\n * <button onClick={callback}>click</button>\n *\n * // Cancel the trailing throttled invocation.\n * window.addEventListener('popstate', throttled.cancel);\n */\nfunction useThrottledCallback(func, wait, _a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.leading, leading = _c === void 0 ? true : _c, _d = _b.trailing, trailing = _d === void 0 ? true : _d;\n return useDebouncedCallback_1.default(func, wait, {\n maxWait: wait,\n leading: leading,\n trailing: trailing,\n });\n}\nexports.default = useThrottledCallback;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar react = require('react');\n\nvar index = react.useLayoutEffect ;\n\nexports.default = index;\n","/**\n * @license React\n * use-sync-external-store-shim.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = require('react');\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\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\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\n// dispatch for CommonJS interop named imports.\n\nvar useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nvar didWarnOld18Alpha = false;\nvar didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n {\n if (!didWarnOld18Alpha) {\n if (React.startTransition !== undefined) {\n didWarnOld18Alpha = true;\n\n error('You are using an outdated, pre-release alpha of React 18 that ' + 'does not support useSyncExternalStore. The ' + 'use-sync-external-store shim will not work correctly. Upgrade ' + 'to a newer pre-release.');\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n var value = getSnapshot();\n\n {\n if (!didWarnUncachedGetSnapshot) {\n var cachedValue = getSnapshot();\n\n if (!objectIs(value, cachedValue)) {\n error('The result of getSnapshot should be cached to avoid an infinite loop');\n\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n var _useState = useState({\n inst: {\n value: value,\n getSnapshot: getSnapshot\n }\n }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1]; // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n\n useLayoutEffect(function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }, [subscribe, value, getSnapshot]);\n useEffect(function () {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n\n var handleStoreChange = function () {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst: inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange);\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n var prevValue = inst.value;\n\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n\nvar isServerEnvironment = !canUseDOM;\n\nvar shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore;\nvar useSyncExternalStore$2 = React.useSyncExternalStore !== undefined ? React.useSyncExternalStore : shim;\n\nexports.useSyncExternalStore = useSyncExternalStore$2;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\n 'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n var React = require('react');\nvar shim = require('use-sync-external-store/shim');\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nvar objectIs = typeof Object.is === 'function' ? Object.is : is;\n\nvar useSyncExternalStore = shim.useSyncExternalStore;\n\n// for CommonJS interop.\n\nvar useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue; // Same as useSyncExternalStore, but supports selector and isEqual arguments.\n\nfunction useSyncExternalStoreWithSelector(subscribe, getSnapshot, getServerSnapshot, selector, isEqual) {\n // Use this to track the rendered snapshot.\n var instRef = useRef(null);\n var inst;\n\n if (instRef.current === null) {\n inst = {\n hasValue: false,\n value: null\n };\n instRef.current = inst;\n } else {\n inst = instRef.current;\n }\n\n var _useMemo = useMemo(function () {\n // Track the memoized state using closure variables that are local to this\n // memoized instance of a getSnapshot function. Intentionally not using a\n // useRef hook, because that state would be shared across all concurrent\n // copies of the hook/component.\n var hasMemo = false;\n var memoizedSnapshot;\n var memoizedSelection;\n\n var memoizedSelector = function (nextSnapshot) {\n if (!hasMemo) {\n // The first time the hook is called, there is no memoized result.\n hasMemo = true;\n memoizedSnapshot = nextSnapshot;\n\n var _nextSelection = selector(nextSnapshot);\n\n if (isEqual !== undefined) {\n // Even if the selector has changed, the currently rendered selection\n // may be equal to the new selection. We should attempt to reuse the\n // current value if possible, to preserve downstream memoizations.\n if (inst.hasValue) {\n var currentSelection = inst.value;\n\n if (isEqual(currentSelection, _nextSelection)) {\n memoizedSelection = currentSelection;\n return currentSelection;\n }\n }\n }\n\n memoizedSelection = _nextSelection;\n return _nextSelection;\n } // We may be able to reuse the previous invocation's result.\n\n\n // We may be able to reuse the previous invocation's result.\n var prevSnapshot = memoizedSnapshot;\n var prevSelection = memoizedSelection;\n\n if (objectIs(prevSnapshot, nextSnapshot)) {\n // The snapshot is the same as last time. Reuse the previous selection.\n return prevSelection;\n } // The snapshot has changed, so we need to compute a new selection.\n\n\n // The snapshot has changed, so we need to compute a new selection.\n var nextSelection = selector(nextSnapshot); // If a custom isEqual function is provided, use that to check if the data\n // has changed. If it hasn't, return the previous selection. That signals\n // to React that the selections are conceptually equal, and we can bail\n // out of rendering.\n\n // If a custom isEqual function is provided, use that to check if the data\n // has changed. If it hasn't, return the previous selection. That signals\n // to React that the selections are conceptually equal, and we can bail\n // out of rendering.\n if (isEqual !== undefined && isEqual(prevSelection, nextSelection)) {\n return prevSelection;\n }\n\n memoizedSnapshot = nextSnapshot;\n memoizedSelection = nextSelection;\n return nextSelection;\n }; // Assigning this to a constant so that Flow knows it can't change.\n\n\n // Assigning this to a constant so that Flow knows it can't change.\n var maybeGetServerSnapshot = getServerSnapshot === undefined ? null : getServerSnapshot;\n\n var getSnapshotWithSelector = function () {\n return memoizedSelector(getSnapshot());\n };\n\n var getServerSnapshotWithSelector = maybeGetServerSnapshot === null ? undefined : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n };\n return [getSnapshotWithSelector, getServerSnapshotWithSelector];\n }, [getSnapshot, getServerSnapshot, selector, isEqual]),\n getSelection = _useMemo[0],\n getServerSelection = _useMemo[1];\n\n var value = useSyncExternalStore(subscribe, getSelection, getServerSelection);\n useEffect(function () {\n inst.hasValue = true;\n inst.value = value;\n }, [value]);\n useDebugValue(value);\n return value;\n}\n\nexports.useSyncExternalStoreWithSelector = useSyncExternalStoreWithSelector;\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n 'function'\n) {\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n \n })();\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace. all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge({}, [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked | meta.stack\n\t\t\t// | found | not found | undefined\n\t\t\t// false | x | x | x\n\t\t\t// true | | x |\n\t\t\t// undefined | | x | x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\treturn layout.horizontal ? newWidth !== chartArea.w : newHeight !== chartArea.h;\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\n * DOM element rendering detection\\n * https://davidwalsh.name/detect-node-insertion\\n */\\n@keyframes chartjs-render-animation {\\n\\tfrom { opacity: 0.99; }\\n\\tto { opacity: 1; }\\n}\\n\\n.chartjs-render-monitor {\\n\\tanimation: chartjs-render-animation 0.001s;\\n}\\n\\n/*\\n * DOM element resizing detection\\n * https://github.com/marcj/css-element-queries\\n */\\n.chartjs-size-monitor,\\n.chartjs-size-monitor-expand,\\n.chartjs-size-monitor-shrink {\\n\\tposition: absolute;\\n\\tdirection: ltr;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\toverflow: hidden;\\n\\tpointer-events: none;\\n\\tvisibility: hidden;\\n\\tz-index: -1;\\n}\\n\\n.chartjs-size-monitor-expand > div {\\n\\tposition: absolute;\\n\\twidth: 1000000px;\\n\\theight: 1000000px;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.chartjs-size-monitor-shrink > div {\\n\\tposition: absolute;\\n\\twidth: 200%;\\n\\theight: 200%;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the <style>.\n * @param {string} css - the CSS to be injected.\n */\nfunction injectCSS(rootNode, css) {\n\t// https://stackoverflow.com/q/3922139\n\tvar expando = rootNode[EXPANDO_KEY] || (rootNode[EXPANDO_KEY] = {});\n\tif (!expando.containsStyles) {\n\t\texpando.containsStyles = true;\n\t\tcss = '/* Chart.js */\\n' + css;\n\t\tvar style = document.createElement('style');\n\t\tstyle.setAttribute('type', 'text/css');\n\t\tstyle.appendChild(document.createTextNode(css));\n\t\trootNode.appendChild(style);\n\t}\n}\n\nvar platform_dom$2 = {\n\t/**\n\t * When `true`, prevents the automatic injection of the stylesheet required to\n\t * correctly detect when the chart is added to the DOM and then resized. This\n\t * switch has been added to allow external stylesheet (`dist/Chart(.min)?.js`)\n\t * to be manually imported to make this library compatible with any CSP.\n\t * See https://github.com/chartjs/Chart.js/issues/5208\n\t */\n\tdisableCSSInjection: false,\n\n\t/**\n\t * This property holds whether this platform is enabled for the current environment.\n\t * Currently used by platform.js to select the proper implementation.\n\t * @private\n\t */\n\t_enabled: typeof window !== 'undefined' && typeof document !== 'undefined',\n\n\t/**\n\t * Initializes resources that depend on platform options.\n\t * @param {HTMLCanvasElement} canvas - The Canvas element.\n\t * @private\n\t */\n\t_ensureLoaded: function(canvas) {\n\t\tif (!this.disableCSSInjection) {\n\t\t\t// If the canvas is in a shadow DOM, then the styles must also be inserted\n\t\t\t// into the same shadow DOM.\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5763\n\t\t\tvar root = canvas.getRootNode ? canvas.getRootNode() : document;\n\t\t\tvar targetNode = root.host ? root : document.head;\n\t\t\tinjectCSS(targetNode, stylesheet);\n\t\t}\n\t},\n\n\tacquireContext: function(item, config) {\n\t\tif (typeof item === 'string') {\n\t\t\titem = document.getElementById(item);\n\t\t} else if (item.length) {\n\t\t\t// Support for array based queries (such as jQuery)\n\t\t\titem = item[0];\n\t\t}\n\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\t// To prevent canvas fingerprinting, some add-ons undefine the getContext\n\t\t// method, for example: https://github.com/kkapsner/CanvasBlocker\n\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\tvar context = item && item.getContext && item.getContext('2d');\n\n\t\t// `instanceof HTMLCanvasElement/CanvasRenderingContext2D` fails when the item is\n\t\t// inside an iframe or when running in a protected environment. We could guess the\n\t\t// types from their toString() value but let's keep things flexible and assume it's\n\t\t// a sufficient condition if the item has a context2D which has item as `canvas`.\n\t\t// https://github.com/chartjs/Chart.js/issues/3887\n\t\t// https://github.com/chartjs/Chart.js/issues/4102\n\t\t// https://github.com/chartjs/Chart.js/issues/4152\n\t\tif (context && context.canvas === item) {\n\t\t\t// Load platform resources on first chart creation, to make it possible to\n\t\t\t// import the library before setting platform options.\n\t\t\tthis._ensureLoaded(item);\n\t\t\tinitCanvas(item, config);\n\t\t\treturn context;\n\t\t}\n\n\t\treturn null;\n\t},\n\n\treleaseContext: function(context) {\n\t\tvar canvas = context.canvas;\n\t\tif (!canvas[EXPANDO_KEY]) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar initial = canvas[EXPANDO_KEY].initial;\n\t\t['height', 'width'].forEach(function(prop) {\n\t\t\tvar value = initial[prop];\n\t\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\t\tcanvas.removeAttribute(prop);\n\t\t\t} else {\n\t\t\t\tcanvas.setAttribute(prop, value);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(initial.style || {}, function(value, key) {\n\t\t\tcanvas.style[key] = value;\n\t\t});\n\n\t\t// The canvas render size might have been changed (and thus the state stack discarded),\n\t\t// we can't use save() and restore() to restore the initial state. So make sure that at\n\t\t// least the canvas context is reset to the default state by setting the canvas width.\n\t\t// https://www.w3.org/TR/2011/WD-html5-20110525/the-canvas-element.html\n\t\t// eslint-disable-next-line no-self-assign\n\t\tcanvas.width = canvas.width;\n\n\t\tdelete canvas[EXPANDO_KEY];\n\t},\n\n\taddEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\taddResizeListener(canvas, listener, chart);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || (listener[EXPANDO_KEY] = {});\n\t\tvar proxies = expando.proxies || (expando.proxies = {});\n\t\tvar proxy = proxies[chart.id + '_' + type] = function(event) {\n\t\t\tlistener(fromNativeEvent(event, chart));\n\t\t};\n\n\t\taddListener(canvas, type, proxy);\n\t},\n\n\tremoveEventListener: function(chart, type, listener) {\n\t\tvar canvas = chart.canvas;\n\t\tif (type === 'resize') {\n\t\t\t// Note: the resize event is not supported on all browsers.\n\t\t\tremoveResizeListener(canvas);\n\t\t\treturn;\n\t\t}\n\n\t\tvar expando = listener[EXPANDO_KEY] || {};\n\t\tvar proxies = expando.proxies || {};\n\t\tvar proxy = proxies[chart.id + '_' + type];\n\t\tif (!proxy) {\n\t\t\treturn;\n\t\t}\n\n\t\tremoveListener(canvas, type, proxy);\n\t}\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use EventTarget.addEventListener instead.\n * EventTarget.addEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n * @function Chart.helpers.addEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.addEvent = addListener;\n\n/**\n * Provided for backward compatibility, use EventTarget.removeEventListener instead.\n * EventTarget.removeEventListener compatibility: Chrome, Opera 7, Safari, FF1.5+, IE9+\n * @see https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener\n * @function Chart.helpers.removeEvent\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.removeEvent = removeListener;\n\n// @TODO Make possible to select another platform at build time.\nvar implementation = platform_dom$2._enabled ? platform_dom$2 : platform_basic;\n\n/**\n * @namespace Chart.platform\n * @see https://chartjs.gitbooks.io/proposals/content/Platform.html\n * @since 2.4.0\n */\nvar platform = helpers$1.extend({\n\t/**\n\t * @since 2.7.0\n\t */\n\tinitialize: function() {},\n\n\t/**\n\t * Called at chart construction time, returns a context2d instance implementing\n\t * the [W3C Canvas 2D Context API standard]{@link https://www.w3.org/TR/2dcontext/}.\n\t * @param {*} item - The native item from which to acquire context (platform specific)\n\t * @param {object} options - The chart options\n\t * @returns {CanvasRenderingContext2D} context2d instance\n\t */\n\tacquireContext: function() {},\n\n\t/**\n\t * Called at chart destruction time, releases any resources associated to the context\n\t * previously returned by the acquireContext() method.\n\t * @param {CanvasRenderingContext2D} context - The context2d instance\n\t * @returns {boolean} true if the method succeeded, else false\n\t */\n\treleaseContext: function() {},\n\n\t/**\n\t * Registers the specified listener on the given chart.\n\t * @param {Chart} chart - Chart from which to listen for event\n\t * @param {string} type - The ({@link IEvent}) type to listen for\n\t * @param {function} listener - Receives a notification (an object that implements\n\t * the {@link IEvent} interface) when an event of the specified type occurs.\n\t */\n\taddEventListener: function() {},\n\n\t/**\n\t * Removes the specified listener previously registered with addEventListener.\n\t * @param {Chart} chart - Chart from which to remove the listener\n\t * @param {string} type - The ({@link IEvent}) type to remove\n\t * @param {function} listener - The listener function to remove from the event target.\n\t */\n\tremoveEventListener: function() {}\n\n}, implementation);\n\ncore_defaults._set('global', {\n\tplugins: {}\n});\n\n/**\n * The plugin service singleton\n * @namespace Chart.plugins\n * @since 2.1.0\n */\nvar core_plugins = {\n\t/**\n\t * Globally registered plugins.\n\t * @private\n\t */\n\t_plugins: [],\n\n\t/**\n\t * This identifier is used to invalidate the descriptors cache attached to each chart\n\t * when a global plugin is registered or unregistered. In this case, the cache ID is\n\t * incremented and descriptors are regenerated during following API calls.\n\t * @private\n\t */\n\t_cacheId: 0,\n\n\t/**\n\t * Registers the given plugin(s) if not already registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tif (p.indexOf(plugin) === -1) {\n\t\t\t\tp.push(plugin);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Unregisters the given plugin(s) only if registered.\n\t * @param {IPlugin[]|IPlugin} plugins plugin instance(s).\n\t */\n\tunregister: function(plugins) {\n\t\tvar p = this._plugins;\n\t\t([]).concat(plugins).forEach(function(plugin) {\n\t\t\tvar idx = p.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\tp.splice(idx, 1);\n\t\t\t}\n\t\t});\n\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Remove all registered plugins.\n\t * @since 2.1.5\n\t */\n\tclear: function() {\n\t\tthis._plugins = [];\n\t\tthis._cacheId++;\n\t},\n\n\t/**\n\t * Returns the number of registered plugins?\n\t * @returns {number}\n\t * @since 2.1.5\n\t */\n\tcount: function() {\n\t\treturn this._plugins.length;\n\t},\n\n\t/**\n\t * Returns all registered plugin instances.\n\t * @returns {IPlugin[]} array of plugin objects.\n\t * @since 2.1.5\n\t */\n\tgetAll: function() {\n\t\treturn this._plugins;\n\t},\n\n\t/**\n\t * Calls enabled plugins for `chart` on the specified hook and with the given args.\n\t * This method immediately returns as soon as a plugin explicitly returns false. The\n\t * returned value can be used, for instance, to interrupt the current action.\n\t * @param {Chart} chart - The chart instance for which plugins should be called.\n\t * @param {string} hook - The name of the plugin method to call (e.g. 'beforeUpdate').\n\t * @param {Array} [args] - Extra arguments to apply to the hook call.\n\t * @returns {boolean} false if any of the plugins return false, else returns true.\n\t */\n\tnotify: function(chart, hook, args) {\n\t\tvar descriptors = this.descriptors(chart);\n\t\tvar ilen = descriptors.length;\n\t\tvar i, descriptor, plugin, params, method;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tdescriptor = descriptors[i];\n\t\t\tplugin = descriptor.plugin;\n\t\t\tmethod = plugin[hook];\n\t\t\tif (typeof method === 'function') {\n\t\t\t\tparams = [chart].concat(args || []);\n\t\t\t\tparams.push(descriptor.options);\n\t\t\t\tif (method.apply(plugin, params) === false) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns descriptors of enabled plugins for the given chart.\n\t * @returns {object[]} [{ plugin, options }]\n\t * @private\n\t */\n\tdescriptors: function(chart) {\n\t\tvar cache = chart.$plugins || (chart.$plugins = {});\n\t\tif (cache.id === this._cacheId) {\n\t\t\treturn cache.descriptors;\n\t\t}\n\n\t\tvar plugins = [];\n\t\tvar descriptors = [];\n\t\tvar config = (chart && chart.config) || {};\n\t\tvar options = (config.options && config.options.plugins) || {};\n\n\t\tthis._plugins.concat(config.plugins || []).forEach(function(plugin) {\n\t\t\tvar idx = plugins.indexOf(plugin);\n\t\t\tif (idx !== -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar id = plugin.id;\n\t\t\tvar opts = options[id];\n\t\t\tif (opts === false) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (opts === true) {\n\t\t\t\topts = helpers$1.clone(core_defaults.global.plugins[id]);\n\t\t\t}\n\n\t\t\tplugins.push(plugin);\n\t\t\tdescriptors.push({\n\t\t\t\tplugin: plugin,\n\t\t\t\toptions: opts || {}\n\t\t\t});\n\t\t});\n\n\t\tcache.descriptors = descriptors;\n\t\tcache.id = this._cacheId;\n\t\treturn descriptors;\n\t},\n\n\t/**\n\t * Invalidates cache for the given chart: descriptors hold a reference on plugin option,\n\t * but in some cases, this reference can be changed by the user when updating options.\n\t * https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t * @private\n\t */\n\t_invalidate: function(chart) {\n\t\tdelete chart.$plugins;\n\t}\n};\n\nvar core_scaleService = {\n\t// Scale registration object. Extensions can register new scale types (such as log or DB scales) and then\n\t// use the new chart options to grab the correct scale\n\tconstructors: {},\n\t// Use a registration function so that we can move to an ES6 map when we no longer need to support\n\t// old browsers\n\n\t// Scale config defaults\n\tdefaults: {},\n\tregisterScaleType: function(type, scaleConstructor, scaleDefaults) {\n\t\tthis.constructors[type] = scaleConstructor;\n\t\tthis.defaults[type] = helpers$1.clone(scaleDefaults);\n\t},\n\tgetScaleConstructor: function(type) {\n\t\treturn this.constructors.hasOwnProperty(type) ? this.constructors[type] : undefined;\n\t},\n\tgetScaleDefaults: function(type) {\n\t\t// Return the scale defaults merged with the global settings so that we always use the latest ones\n\t\treturn this.defaults.hasOwnProperty(type) ? helpers$1.merge({}, [core_defaults.scale, this.defaults[type]]) : {};\n\t},\n\tupdateScaleDefaults: function(type, additions) {\n\t\tvar me = this;\n\t\tif (me.defaults.hasOwnProperty(type)) {\n\t\t\tme.defaults[type] = helpers$1.extend(me.defaults[type], additions);\n\t\t}\n\t},\n\taddScalesToLayout: function(chart) {\n\t\t// Adds each scale to the chart.boxes array to be sized accordingly\n\t\thelpers$1.each(chart.scales, function(scale) {\n\t\t\t// Set ILayoutItem parameters for backwards compatibility\n\t\t\tscale.fullWidth = scale.options.fullWidth;\n\t\t\tscale.position = scale.options.position;\n\t\t\tscale.weight = scale.options.weight;\n\t\t\tcore_layouts.addBox(chart, scale);\n\t\t});\n\t}\n};\n\nvar valueOrDefault$8 = helpers$1.valueOrDefault;\nvar getRtlHelper = helpers$1.rtl.getRtlAdapter;\n\ncore_defaults._set('global', {\n\ttooltips: {\n\t\tenabled: true,\n\t\tcustom: null,\n\t\tmode: 'nearest',\n\t\tposition: 'average',\n\t\tintersect: true,\n\t\tbackgroundColor: 'rgba(0,0,0,0.8)',\n\t\ttitleFontStyle: 'bold',\n\t\ttitleSpacing: 2,\n\t\ttitleMarginBottom: 6,\n\t\ttitleFontColor: '#fff',\n\t\ttitleAlign: 'left',\n\t\tbodySpacing: 2,\n\t\tbodyFontColor: '#fff',\n\t\tbodyAlign: 'left',\n\t\tfooterFontStyle: 'bold',\n\t\tfooterSpacing: 2,\n\t\tfooterMarginTop: 6,\n\t\tfooterFontColor: '#fff',\n\t\tfooterAlign: 'left',\n\t\tyPadding: 6,\n\t\txPadding: 6,\n\t\tcaretPadding: 2,\n\t\tcaretSize: 5,\n\t\tcornerRadius: 6,\n\t\tmultiKeyBackground: '#fff',\n\t\tdisplayColors: true,\n\t\tborderColor: 'rgba(0,0,0,0)',\n\t\tborderWidth: 0,\n\t\tcallbacks: {\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeTitle: helpers$1.noop,\n\t\t\ttitle: function(tooltipItems, data) {\n\t\t\t\tvar title = '';\n\t\t\t\tvar labels = data.labels;\n\t\t\t\tvar labelCount = labels ? labels.length : 0;\n\n\t\t\t\tif (tooltipItems.length > 0) {\n\t\t\t\t\tvar item = tooltipItems[0];\n\t\t\t\t\tif (item.label) {\n\t\t\t\t\t\ttitle = item.label;\n\t\t\t\t\t} else if (item.xLabel) {\n\t\t\t\t\t\ttitle = item.xLabel;\n\t\t\t\t\t} else if (labelCount > 0 && item.index < labelCount) {\n\t\t\t\t\t\ttitle = labels[item.index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn title;\n\t\t\t},\n\t\t\tafterTitle: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItem, data)\n\t\t\tbeforeLabel: helpers$1.noop,\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar label = data.datasets[tooltipItem.datasetIndex].label || '';\n\n\t\t\t\tif (label) {\n\t\t\t\t\tlabel += ': ';\n\t\t\t\t}\n\t\t\t\tif (!helpers$1.isNullOrUndef(tooltipItem.value)) {\n\t\t\t\t\tlabel += tooltipItem.value;\n\t\t\t\t} else {\n\t\t\t\t\tlabel += tooltipItem.yLabel;\n\t\t\t\t}\n\t\t\t\treturn label;\n\t\t\t},\n\t\t\tlabelColor: function(tooltipItem, chart) {\n\t\t\t\tvar meta = chart.getDatasetMeta(tooltipItem.datasetIndex);\n\t\t\t\tvar activeElement = meta.data[tooltipItem.index];\n\t\t\t\tvar view = activeElement._view;\n\t\t\t\treturn {\n\t\t\t\t\tborderColor: view.borderColor,\n\t\t\t\t\tbackgroundColor: view.backgroundColor\n\t\t\t\t};\n\t\t\t},\n\t\t\tlabelTextColor: function() {\n\t\t\t\treturn this._options.bodyFontColor;\n\t\t\t},\n\t\t\tafterLabel: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tafterBody: helpers$1.noop,\n\n\t\t\t// Args are: (tooltipItems, data)\n\t\t\tbeforeFooter: helpers$1.noop,\n\t\t\tfooter: helpers$1.noop,\n\t\t\tafterFooter: helpers$1.noop\n\t\t}\n\t}\n});\n\nvar positioners = {\n\t/**\n\t * Average mode places the tooltip at the average position of the elements shown\n\t * @function Chart.Tooltip.positioners.average\n\t * @param elements {ChartElement[]} the elements being displayed in the tooltip\n\t * @returns {object} tooltip position\n\t */\n\taverage: function(elements) {\n\t\tif (!elements.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar i, len;\n\t\tvar x = 0;\n\t\tvar y = 0;\n\t\tvar count = 0;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar pos = el.tooltipPosition();\n\t\t\t\tx += pos.x;\n\t\t\t\ty += pos.y;\n\t\t\t\t++count;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tx: x / count,\n\t\t\ty: y / count\n\t\t};\n\t},\n\n\t/**\n\t * Gets the tooltip position nearest of the item nearest to the event position\n\t * @function Chart.Tooltip.positioners.nearest\n\t * @param elements {Chart.Element[]} the tooltip elements\n\t * @param eventPosition {object} the position of the event in canvas coordinates\n\t * @returns {object} the tooltip position\n\t */\n\tnearest: function(elements, eventPosition) {\n\t\tvar x = eventPosition.x;\n\t\tvar y = eventPosition.y;\n\t\tvar minDistance = Number.POSITIVE_INFINITY;\n\t\tvar i, len, nearestElement;\n\n\t\tfor (i = 0, len = elements.length; i < len; ++i) {\n\t\t\tvar el = elements[i];\n\t\t\tif (el && el.hasValue()) {\n\t\t\t\tvar center = el.getCenterPoint();\n\t\t\t\tvar d = helpers$1.distanceBetweenPoints(eventPosition, center);\n\n\t\t\t\tif (d < minDistance) {\n\t\t\t\t\tminDistance = d;\n\t\t\t\t\tnearestElement = el;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (nearestElement) {\n\t\t\tvar tp = nearestElement.tooltipPosition();\n\t\t\tx = tp.x;\n\t\t\ty = tp.y;\n\t\t}\n\n\t\treturn {\n\t\t\tx: x,\n\t\t\ty: y\n\t\t};\n\t}\n};\n\n// Helper to push or concat based on if the 2nd parameter is an array or not\nfunction pushOrConcat(base, toPush) {\n\tif (toPush) {\n\t\tif (helpers$1.isArray(toPush)) {\n\t\t\t// base = base.concat(toPush);\n\t\t\tArray.prototype.push.apply(base, toPush);\n\t\t} else {\n\t\t\tbase.push(toPush);\n\t\t}\n\t}\n\n\treturn base;\n}\n\n/**\n * Returns array of strings split by newline\n * @param {string} value - The value to split by newline.\n * @returns {string[]} value if newline present - Returned from String split() method\n * @function\n */\nfunction splitNewlines(str) {\n\tif ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n\t\treturn str.split('\\n');\n\t}\n\treturn str;\n}\n\n\n/**\n * Private helper to create a tooltip item model\n * @param element - the chart element (point, arc, bar) to create the tooltip item for\n * @return new tooltip item\n */\nfunction createTooltipItem(element) {\n\tvar xScale = element._xScale;\n\tvar yScale = element._yScale || element._scale; // handle radar || polarArea charts\n\tvar index = element._index;\n\tvar datasetIndex = element._datasetIndex;\n\tvar controller = element._chart.getDatasetMeta(datasetIndex).controller;\n\tvar indexScale = controller._getIndexScale();\n\tvar valueScale = controller._getValueScale();\n\n\treturn {\n\t\txLabel: xScale ? xScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tyLabel: yScale ? yScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tlabel: indexScale ? '' + indexScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tvalue: valueScale ? '' + valueScale.getLabelForIndex(index, datasetIndex) : '',\n\t\tindex: index,\n\t\tdatasetIndex: datasetIndex,\n\t\tx: element._model.x,\n\t\ty: element._model.y\n\t};\n}\n\n/**\n * Helper to get the reset model for the tooltip\n * @param tooltipOpts {object} the tooltip options\n */\nfunction getBaseModel(tooltipOpts) {\n\tvar globalDefaults = core_defaults.global;\n\n\treturn {\n\t\t// Positioning\n\t\txPadding: tooltipOpts.xPadding,\n\t\tyPadding: tooltipOpts.yPadding,\n\t\txAlign: tooltipOpts.xAlign,\n\t\tyAlign: tooltipOpts.yAlign,\n\n\t\t// Drawing direction and text direction\n\t\trtl: tooltipOpts.rtl,\n\t\ttextDirection: tooltipOpts.textDirection,\n\n\t\t// Body\n\t\tbodyFontColor: tooltipOpts.bodyFontColor,\n\t\t_bodyFontFamily: valueOrDefault$8(tooltipOpts.bodyFontFamily, globalDefaults.defaultFontFamily),\n\t\t_bodyFontStyle: valueOrDefault$8(tooltipOpts.bodyFontStyle, globalDefaults.defaultFontStyle),\n\t\t_bodyAlign: tooltipOpts.bodyAlign,\n\t\tbodyFontSize: valueOrDefault$8(tooltipOpts.bodyFontSize, globalDefaults.defaultFontSize),\n\t\tbodySpacing: tooltipOpts.bodySpacing,\n\n\t\t// Title\n\t\ttitleFontColor: tooltipOpts.titleFontColor,\n\t\t_titleFontFamily: valueOrDefault$8(tooltipOpts.titleFontFamily, globalDefaults.defaultFontFamily),\n\t\t_titleFontStyle: valueOrDefault$8(tooltipOpts.titleFontStyle, globalDefaults.defaultFontStyle),\n\t\ttitleFontSize: valueOrDefault$8(tooltipOpts.titleFontSize, globalDefaults.defaultFontSize),\n\t\t_titleAlign: tooltipOpts.titleAlign,\n\t\ttitleSpacing: tooltipOpts.titleSpacing,\n\t\ttitleMarginBottom: tooltipOpts.titleMarginBottom,\n\n\t\t// Footer\n\t\tfooterFontColor: tooltipOpts.footerFontColor,\n\t\t_footerFontFamily: valueOrDefault$8(tooltipOpts.footerFontFamily, globalDefaults.defaultFontFamily),\n\t\t_footerFontStyle: valueOrDefault$8(tooltipOpts.footerFontStyle, globalDefaults.defaultFontStyle),\n\t\tfooterFontSize: valueOrDefault$8(tooltipOpts.footerFontSize, globalDefaults.defaultFontSize),\n\t\t_footerAlign: tooltipOpts.footerAlign,\n\t\tfooterSpacing: tooltipOpts.footerSpacing,\n\t\tfooterMarginTop: tooltipOpts.footerMarginTop,\n\n\t\t// Appearance\n\t\tcaretSize: tooltipOpts.caretSize,\n\t\tcornerRadius: tooltipOpts.cornerRadius,\n\t\tbackgroundColor: tooltipOpts.backgroundColor,\n\t\topacity: 0,\n\t\tlegendColorBackground: tooltipOpts.multiKeyBackground,\n\t\tdisplayColors: tooltipOpts.displayColors,\n\t\tborderColor: tooltipOpts.borderColor,\n\t\tborderWidth: tooltipOpts.borderWidth\n\t};\n}\n\n/**\n * Get the size of the tooltip\n */\nfunction getTooltipSize(tooltip, model) {\n\tvar ctx = tooltip._chart.ctx;\n\n\tvar height = model.yPadding * 2; // Tooltip Padding\n\tvar width = 0;\n\n\t// Count of all lines in the body\n\tvar body = model.body;\n\tvar combinedBodyLength = body.reduce(function(count, bodyItem) {\n\t\treturn count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length;\n\t}, 0);\n\tcombinedBodyLength += model.beforeBody.length + model.afterBody.length;\n\n\tvar titleLineCount = model.title.length;\n\tvar footerLineCount = model.footer.length;\n\tvar titleFontSize = model.titleFontSize;\n\tvar bodyFontSize = model.bodyFontSize;\n\tvar footerFontSize = model.footerFontSize;\n\n\theight += titleLineCount * titleFontSize; // Title Lines\n\theight += titleLineCount ? (titleLineCount - 1) * model.titleSpacing : 0; // Title Line Spacing\n\theight += titleLineCount ? model.titleMarginBottom : 0; // Title's bottom Margin\n\theight += combinedBodyLength * bodyFontSize; // Body Lines\n\theight += combinedBodyLength ? (combinedBodyLength - 1) * model.bodySpacing : 0; // Body Line Spacing\n\theight += footerLineCount ? model.footerMarginTop : 0; // Footer Margin\n\theight += footerLineCount * (footerFontSize); // Footer Lines\n\theight += footerLineCount ? (footerLineCount - 1) * model.footerSpacing : 0; // Footer Line Spacing\n\n\t// Title width\n\tvar widthPadding = 0;\n\tvar maxLineWidth = function(line) {\n\t\twidth = Math.max(width, ctx.measureText(line).width + widthPadding);\n\t};\n\n\tctx.font = helpers$1.fontString(titleFontSize, model._titleFontStyle, model._titleFontFamily);\n\thelpers$1.each(model.title, maxLineWidth);\n\n\t// Body width\n\tctx.font = helpers$1.fontString(bodyFontSize, model._bodyFontStyle, model._bodyFontFamily);\n\thelpers$1.each(model.beforeBody.concat(model.afterBody), maxLineWidth);\n\n\t// Body lines may include some extra width due to the color box\n\twidthPadding = model.displayColors ? (bodyFontSize + 2) : 0;\n\thelpers$1.each(body, function(bodyItem) {\n\t\thelpers$1.each(bodyItem.before, maxLineWidth);\n\t\thelpers$1.each(bodyItem.lines, maxLineWidth);\n\t\thelpers$1.each(bodyItem.after, maxLineWidth);\n\t});\n\n\t// Reset back to 0\n\twidthPadding = 0;\n\n\t// Footer width\n\tctx.font = helpers$1.fontString(footerFontSize, model._footerFontStyle, model._footerFontFamily);\n\thelpers$1.each(model.footer, maxLineWidth);\n\n\t// Add padding\n\twidth += 2 * model.xPadding;\n\n\treturn {\n\t\twidth: width,\n\t\theight: height\n\t};\n}\n\n/**\n * Helper to get the alignment of a tooltip given the size\n */\nfunction determineAlignment(tooltip, size) {\n\tvar model = tooltip._model;\n\tvar chart = tooltip._chart;\n\tvar chartArea = tooltip._chart.chartArea;\n\tvar xAlign = 'center';\n\tvar yAlign = 'center';\n\n\tif (model.y < size.height) {\n\t\tyAlign = 'top';\n\t} else if (model.y > (chart.height - size.height)) {\n\t\tyAlign = 'bottom';\n\t}\n\n\tvar lf, rf; // functions to determine left, right alignment\n\tvar olf, orf; // functions to determine if left/right alignment causes tooltip to go outside chart\n\tvar yf; // function to get the y alignment if the tooltip goes outside of the left or right edges\n\tvar midX = (chartArea.left + chartArea.right) / 2;\n\tvar midY = (chartArea.top + chartArea.bottom) / 2;\n\n\tif (yAlign === 'center') {\n\t\tlf = function(x) {\n\t\t\treturn x <= midX;\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x > midX;\n\t\t};\n\t} else {\n\t\tlf = function(x) {\n\t\t\treturn x <= (size.width / 2);\n\t\t};\n\t\trf = function(x) {\n\t\t\treturn x >= (chart.width - (size.width / 2));\n\t\t};\n\t}\n\n\tolf = function(x) {\n\t\treturn x + size.width + model.caretSize + model.caretPadding > chart.width;\n\t};\n\torf = function(x) {\n\t\treturn x - size.width - model.caretSize - model.caretPadding < 0;\n\t};\n\tyf = function(y) {\n\t\treturn y <= midY ? 'top' : 'bottom';\n\t};\n\n\tif (lf(model.x)) {\n\t\txAlign = 'left';\n\n\t\t// Is tooltip too wide and goes over the right side of the chart.?\n\t\tif (olf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t} else if (rf(model.x)) {\n\t\txAlign = 'right';\n\n\t\t// Is tooltip too wide and goes outside left edge of canvas?\n\t\tif (orf(model.x)) {\n\t\t\txAlign = 'center';\n\t\t\tyAlign = yf(model.y);\n\t\t}\n\t}\n\n\tvar opts = tooltip._options;\n\treturn {\n\t\txAlign: opts.xAlign ? opts.xAlign : xAlign,\n\t\tyAlign: opts.yAlign ? opts.yAlign : yAlign\n\t};\n}\n\n/**\n * Helper to get the location a tooltip needs to be placed at given the initial position (via the vm) and the size and alignment\n */\nfunction getBackgroundPoint(vm, size, alignment, chart) {\n\t// Background Position\n\tvar x = vm.x;\n\tvar y = vm.y;\n\n\tvar caretSize = vm.caretSize;\n\tvar caretPadding = vm.caretPadding;\n\tvar cornerRadius = vm.cornerRadius;\n\tvar xAlign = alignment.xAlign;\n\tvar yAlign = alignment.yAlign;\n\tvar paddingAndSize = caretSize + caretPadding;\n\tvar radiusAndPadding = cornerRadius + caretPadding;\n\n\tif (xAlign === 'right') {\n\t\tx -= size.width;\n\t} else if (xAlign === 'center') {\n\t\tx -= (size.width / 2);\n\t\tif (x + size.width > chart.width) {\n\t\t\tx = chart.width - size.width;\n\t\t}\n\t\tif (x < 0) {\n\t\t\tx = 0;\n\t\t}\n\t}\n\n\tif (yAlign === 'top') {\n\t\ty += paddingAndSize;\n\t} else if (yAlign === 'bottom') {\n\t\ty -= size.height + paddingAndSize;\n\t} else {\n\t\ty -= (size.height / 2);\n\t}\n\n\tif (yAlign === 'center') {\n\t\tif (xAlign === 'left') {\n\t\t\tx += paddingAndSize;\n\t\t} else if (xAlign === 'right') {\n\t\t\tx -= paddingAndSize;\n\t\t}\n\t} else if (xAlign === 'left') {\n\t\tx -= radiusAndPadding;\n\t} else if (xAlign === 'right') {\n\t\tx += radiusAndPadding;\n\t}\n\n\treturn {\n\t\tx: x,\n\t\ty: y\n\t};\n}\n\nfunction getAlignedX(vm, align) {\n\treturn align === 'center'\n\t\t? vm.x + vm.width / 2\n\t\t: align === 'right'\n\t\t\t? vm.x + vm.width - vm.xPadding\n\t\t\t: vm.x + vm.xPadding;\n}\n\n/**\n * Helper to build before and after body lines\n */\nfunction getBeforeAfterBodyLines(callback) {\n\treturn pushOrConcat([], splitNewlines(callback));\n}\n\nvar exports$4 = core_element.extend({\n\tinitialize: function() {\n\t\tthis._model = getBaseModel(this._options);\n\t\tthis._lastActive = [];\n\t},\n\n\t// Get the title\n\t// Args are: (tooltipItem, data)\n\tgetTitle: function() {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\t\tvar callbacks = opts.callbacks;\n\n\t\tvar beforeTitle = callbacks.beforeTitle.apply(me, arguments);\n\t\tvar title = callbacks.title.apply(me, arguments);\n\t\tvar afterTitle = callbacks.afterTitle.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeTitle));\n\t\tlines = pushOrConcat(lines, splitNewlines(title));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterTitle));\n\n\t\treturn lines;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBeforeBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.beforeBody.apply(this, arguments));\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetBody: function(tooltipItems, data) {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\t\tvar bodyItems = [];\n\n\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\tvar bodyItem = {\n\t\t\t\tbefore: [],\n\t\t\t\tlines: [],\n\t\t\t\tafter: []\n\t\t\t};\n\t\t\tpushOrConcat(bodyItem.before, splitNewlines(callbacks.beforeLabel.call(me, tooltipItem, data)));\n\t\t\tpushOrConcat(bodyItem.lines, callbacks.label.call(me, tooltipItem, data));\n\t\t\tpushOrConcat(bodyItem.after, splitNewlines(callbacks.afterLabel.call(me, tooltipItem, data)));\n\n\t\t\tbodyItems.push(bodyItem);\n\t\t});\n\n\t\treturn bodyItems;\n\t},\n\n\t// Args are: (tooltipItem, data)\n\tgetAfterBody: function() {\n\t\treturn getBeforeAfterBodyLines(this._options.callbacks.afterBody.apply(this, arguments));\n\t},\n\n\t// Get the footer and beforeFooter and afterFooter lines\n\t// Args are: (tooltipItem, data)\n\tgetFooter: function() {\n\t\tvar me = this;\n\t\tvar callbacks = me._options.callbacks;\n\n\t\tvar beforeFooter = callbacks.beforeFooter.apply(me, arguments);\n\t\tvar footer = callbacks.footer.apply(me, arguments);\n\t\tvar afterFooter = callbacks.afterFooter.apply(me, arguments);\n\n\t\tvar lines = [];\n\t\tlines = pushOrConcat(lines, splitNewlines(beforeFooter));\n\t\tlines = pushOrConcat(lines, splitNewlines(footer));\n\t\tlines = pushOrConcat(lines, splitNewlines(afterFooter));\n\n\t\treturn lines;\n\t},\n\n\tupdate: function(changed) {\n\t\tvar me = this;\n\t\tvar opts = me._options;\n\n\t\t// Need to regenerate the model because its faster than using extend and it is necessary due to the optimization in Chart.Element.transition\n\t\t// that does _view = _model if ease === 1. This causes the 2nd tooltip update to set properties in both the view and model at the same time\n\t\t// which breaks any animations.\n\t\tvar existingModel = me._model;\n\t\tvar model = me._model = getBaseModel(opts);\n\t\tvar active = me._active;\n\n\t\tvar data = me._data;\n\n\t\t// In the case where active.length === 0 we need to keep these at existing values for good animations\n\t\tvar alignment = {\n\t\t\txAlign: existingModel.xAlign,\n\t\t\tyAlign: existingModel.yAlign\n\t\t};\n\t\tvar backgroundPoint = {\n\t\t\tx: existingModel.x,\n\t\t\ty: existingModel.y\n\t\t};\n\t\tvar tooltipSize = {\n\t\t\twidth: existingModel.width,\n\t\t\theight: existingModel.height\n\t\t};\n\t\tvar tooltipPosition = {\n\t\t\tx: existingModel.caretX,\n\t\t\ty: existingModel.caretY\n\t\t};\n\n\t\tvar i, len;\n\n\t\tif (active.length) {\n\t\t\tmodel.opacity = 1;\n\n\t\t\tvar labelColors = [];\n\t\t\tvar labelTextColors = [];\n\t\t\ttooltipPosition = positioners[opts.position].call(me, active, me._eventPosition);\n\n\t\t\tvar tooltipItems = [];\n\t\t\tfor (i = 0, len = active.length; i < len; ++i) {\n\t\t\t\ttooltipItems.push(createTooltipItem(active[i]));\n\t\t\t}\n\n\t\t\t// If the user provided a filter function, use it to modify the tooltip items\n\t\t\tif (opts.filter) {\n\t\t\t\ttooltipItems = tooltipItems.filter(function(a) {\n\t\t\t\t\treturn opts.filter(a, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// If the user provided a sorting function, use it to modify the tooltip items\n\t\t\tif (opts.itemSort) {\n\t\t\t\ttooltipItems = tooltipItems.sort(function(a, b) {\n\t\t\t\t\treturn opts.itemSort(a, b, data);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Determine colors for boxes\n\t\t\thelpers$1.each(tooltipItems, function(tooltipItem) {\n\t\t\t\tlabelColors.push(opts.callbacks.labelColor.call(me, tooltipItem, me._chart));\n\t\t\t\tlabelTextColors.push(opts.callbacks.labelTextColor.call(me, tooltipItem, me._chart));\n\t\t\t});\n\n\n\t\t\t// Build the Text Lines\n\t\t\tmodel.title = me.getTitle(tooltipItems, data);\n\t\t\tmodel.beforeBody = me.getBeforeBody(tooltipItems, data);\n\t\t\tmodel.body = me.getBody(tooltipItems, data);\n\t\t\tmodel.afterBody = me.getAfterBody(tooltipItems, data);\n\t\t\tmodel.footer = me.getFooter(tooltipItems, data);\n\n\t\t\t// Initial positioning and colors\n\t\t\tmodel.x = tooltipPosition.x;\n\t\t\tmodel.y = tooltipPosition.y;\n\t\t\tmodel.caretPadding = opts.caretPadding;\n\t\t\tmodel.labelColors = labelColors;\n\t\t\tmodel.labelTextColors = labelTextColors;\n\n\t\t\t// data points\n\t\t\tmodel.dataPoints = tooltipItems;\n\n\t\t\t// We need to determine alignment of the tooltip\n\t\t\ttooltipSize = getTooltipSize(this, model);\n\t\t\talignment = determineAlignment(this, tooltipSize);\n\t\t\t// Final Size and Position\n\t\t\tbackgroundPoint = getBackgroundPoint(model, tooltipSize, alignment, me._chart);\n\t\t} else {\n\t\t\tmodel.opacity = 0;\n\t\t}\n\n\t\tmodel.xAlign = alignment.xAlign;\n\t\tmodel.yAlign = alignment.yAlign;\n\t\tmodel.x = backgroundPoint.x;\n\t\tmodel.y = backgroundPoint.y;\n\t\tmodel.width = tooltipSize.width;\n\t\tmodel.height = tooltipSize.height;\n\n\t\t// Point where the caret on the tooltip points to\n\t\tmodel.caretX = tooltipPosition.x;\n\t\tmodel.caretY = tooltipPosition.y;\n\n\t\tme._model = model;\n\n\t\tif (changed && opts.custom) {\n\t\t\topts.custom.call(me, model);\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdrawCaret: function(tooltipPoint, size) {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar caretPosition = this.getCaretPosition(tooltipPoint, size, vm);\n\n\t\tctx.lineTo(caretPosition.x1, caretPosition.y1);\n\t\tctx.lineTo(caretPosition.x2, caretPosition.y2);\n\t\tctx.lineTo(caretPosition.x3, caretPosition.y3);\n\t},\n\tgetCaretPosition: function(tooltipPoint, size, vm) {\n\t\tvar x1, x2, x3, y1, y2, y3;\n\t\tvar caretSize = vm.caretSize;\n\t\tvar cornerRadius = vm.cornerRadius;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar ptX = tooltipPoint.x;\n\t\tvar ptY = tooltipPoint.y;\n\t\tvar width = size.width;\n\t\tvar height = size.height;\n\n\t\tif (yAlign === 'center') {\n\t\t\ty2 = ptY + (height / 2);\n\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx1 = ptX;\n\t\t\t\tx2 = x1 - caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 + caretSize;\n\t\t\t\ty3 = y2 - caretSize;\n\t\t\t} else {\n\t\t\t\tx1 = ptX + width;\n\t\t\t\tx2 = x1 + caretSize;\n\t\t\t\tx3 = x1;\n\n\t\t\t\ty1 = y2 - caretSize;\n\t\t\t\ty3 = y2 + caretSize;\n\t\t\t}\n\t\t} else {\n\t\t\tif (xAlign === 'left') {\n\t\t\t\tx2 = ptX + cornerRadius + (caretSize);\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else if (xAlign === 'right') {\n\t\t\t\tx2 = ptX + width - cornerRadius - caretSize;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t} else {\n\t\t\t\tx2 = vm.caretX;\n\t\t\t\tx1 = x2 - caretSize;\n\t\t\t\tx3 = x2 + caretSize;\n\t\t\t}\n\t\t\tif (yAlign === 'top') {\n\t\t\t\ty1 = ptY;\n\t\t\t\ty2 = y1 - caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t} else {\n\t\t\t\ty1 = ptY + height;\n\t\t\t\ty2 = y1 + caretSize;\n\t\t\t\ty3 = y1;\n\t\t\t\t// invert drawing order\n\t\t\t\tvar tmp = x3;\n\t\t\t\tx3 = x1;\n\t\t\t\tx1 = tmp;\n\t\t\t}\n\t\t}\n\t\treturn {x1: x1, x2: x2, x3: x3, y1: y1, y2: y2, y3: y3};\n\t},\n\n\tdrawTitle: function(pt, vm, ctx) {\n\t\tvar title = vm.title;\n\t\tvar length = title.length;\n\t\tvar titleFontSize, titleSpacing, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._titleAlign);\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._titleAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\ttitleFontSize = vm.titleFontSize;\n\t\t\ttitleSpacing = vm.titleSpacing;\n\n\t\t\tctx.fillStyle = vm.titleFontColor;\n\t\t\tctx.font = helpers$1.fontString(titleFontSize, vm._titleFontStyle, vm._titleFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFontSize / 2);\n\t\t\t\tpt.y += titleFontSize + titleSpacing; // Line Height and spacing\n\n\t\t\t\tif (i + 1 === length) {\n\t\t\t\t\tpt.y += vm.titleMarginBottom - titleSpacing; // If Last, add margin, remove spacing\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBody: function(pt, vm, ctx) {\n\t\tvar bodyFontSize = vm.bodyFontSize;\n\t\tvar bodySpacing = vm.bodySpacing;\n\t\tvar bodyAlign = vm._bodyAlign;\n\t\tvar body = vm.body;\n\t\tvar drawColorBoxes = vm.displayColors;\n\t\tvar xLinePadding = 0;\n\t\tvar colorX = drawColorBoxes ? getAlignedX(vm, 'left') : 0;\n\n\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\tvar fillLineOfText = function(line) {\n\t\t\tctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyFontSize / 2);\n\t\t\tpt.y += bodyFontSize + bodySpacing;\n\t\t};\n\n\t\tvar bodyItem, textColor, labelColors, lines, i, j, ilen, jlen;\n\t\tvar bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n\n\t\tctx.textAlign = bodyAlign;\n\t\tctx.textBaseline = 'middle';\n\t\tctx.font = helpers$1.fontString(bodyFontSize, vm._bodyFontStyle, vm._bodyFontFamily);\n\n\t\tpt.x = getAlignedX(vm, bodyAlignForCalculation);\n\n\t\t// Before body lines\n\t\tctx.fillStyle = vm.bodyFontColor;\n\t\thelpers$1.each(vm.beforeBody, fillLineOfText);\n\n\t\txLinePadding = drawColorBoxes && bodyAlignForCalculation !== 'right'\n\t\t\t? bodyAlign === 'center' ? (bodyFontSize / 2 + 1) : (bodyFontSize + 2)\n\t\t\t: 0;\n\n\t\t// Draw body lines now\n\t\tfor (i = 0, ilen = body.length; i < ilen; ++i) {\n\t\t\tbodyItem = body[i];\n\t\t\ttextColor = vm.labelTextColors[i];\n\t\t\tlabelColors = vm.labelColors[i];\n\n\t\t\tctx.fillStyle = textColor;\n\t\t\thelpers$1.each(bodyItem.before, fillLineOfText);\n\n\t\t\tlines = bodyItem.lines;\n\t\t\tfor (j = 0, jlen = lines.length; j < jlen; ++j) {\n\t\t\t\t// Draw Legend-like boxes if needed\n\t\t\t\tif (drawColorBoxes) {\n\t\t\t\t\tvar rtlColorX = rtlHelper.x(colorX);\n\n\t\t\t\t\t// Fill a white rect so that colours merge nicely if the opacity is < 1\n\t\t\t\t\tctx.fillStyle = vm.legendColorBackground;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Border\n\t\t\t\t\tctx.lineWidth = 1;\n\t\t\t\t\tctx.strokeStyle = labelColors.borderColor;\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(rtlColorX, bodyFontSize), pt.y, bodyFontSize, bodyFontSize);\n\n\t\t\t\t\t// Inner square\n\t\t\t\t\tctx.fillStyle = labelColors.backgroundColor;\n\t\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), bodyFontSize - 2), pt.y + 1, bodyFontSize - 2, bodyFontSize - 2);\n\t\t\t\t\tctx.fillStyle = textColor;\n\t\t\t\t}\n\n\t\t\t\tfillLineOfText(lines[j]);\n\t\t\t}\n\n\t\t\thelpers$1.each(bodyItem.after, fillLineOfText);\n\t\t}\n\n\t\t// Reset back to 0 for after body\n\t\txLinePadding = 0;\n\n\t\t// After body lines\n\t\thelpers$1.each(vm.afterBody, fillLineOfText);\n\t\tpt.y -= bodySpacing; // Remove last body spacing\n\t},\n\n\tdrawFooter: function(pt, vm, ctx) {\n\t\tvar footer = vm.footer;\n\t\tvar length = footer.length;\n\t\tvar footerFontSize, i;\n\n\t\tif (length) {\n\t\t\tvar rtlHelper = getRtlHelper(vm.rtl, vm.x, vm.width);\n\n\t\t\tpt.x = getAlignedX(vm, vm._footerAlign);\n\t\t\tpt.y += vm.footerMarginTop;\n\n\t\t\tctx.textAlign = rtlHelper.textAlign(vm._footerAlign);\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\tfooterFontSize = vm.footerFontSize;\n\n\t\t\tctx.fillStyle = vm.footerFontColor;\n\t\t\tctx.font = helpers$1.fontString(footerFontSize, vm._footerFontStyle, vm._footerFontFamily);\n\n\t\t\tfor (i = 0; i < length; ++i) {\n\t\t\t\tctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFontSize / 2);\n\t\t\t\tpt.y += footerFontSize + vm.footerSpacing;\n\t\t\t}\n\t\t}\n\t},\n\n\tdrawBackground: function(pt, vm, ctx, tooltipSize) {\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tvar xAlign = vm.xAlign;\n\t\tvar yAlign = vm.yAlign;\n\t\tvar x = pt.x;\n\t\tvar y = pt.y;\n\t\tvar width = tooltipSize.width;\n\t\tvar height = tooltipSize.height;\n\t\tvar radius = vm.cornerRadius;\n\n\t\tctx.beginPath();\n\t\tctx.moveTo(x + radius, y);\n\t\tif (yAlign === 'top') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width - radius, y);\n\t\tctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n\t\tif (yAlign === 'center' && xAlign === 'right') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + width, y + height - radius);\n\t\tctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n\t\tif (yAlign === 'bottom') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x + radius, y + height);\n\t\tctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n\t\tif (yAlign === 'center' && xAlign === 'left') {\n\t\t\tthis.drawCaret(pt, tooltipSize);\n\t\t}\n\t\tctx.lineTo(x, y + radius);\n\t\tctx.quadraticCurveTo(x, y, x + radius, y);\n\t\tctx.closePath();\n\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth > 0) {\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\n\t\tif (vm.opacity === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar tooltipSize = {\n\t\t\twidth: vm.width,\n\t\t\theight: vm.height\n\t\t};\n\t\tvar pt = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\n\t\t// IE11/Edge does not like very small opacities, so snap to 0\n\t\tvar opacity = Math.abs(vm.opacity < 1e-3) ? 0 : vm.opacity;\n\n\t\t// Truthy/falsey value for empty tooltip\n\t\tvar hasTooltipContent = vm.title.length || vm.beforeBody.length || vm.body.length || vm.afterBody.length || vm.footer.length;\n\n\t\tif (this._options.enabled && hasTooltipContent) {\n\t\t\tctx.save();\n\t\t\tctx.globalAlpha = opacity;\n\n\t\t\t// Draw Background\n\t\t\tthis.drawBackground(pt, vm, ctx, tooltipSize);\n\n\t\t\t// Draw Title, Body, and Footer\n\t\t\tpt.y += vm.yPadding;\n\n\t\t\thelpers$1.rtl.overrideTextDirection(ctx, vm.textDirection);\n\n\t\t\t// Titles\n\t\t\tthis.drawTitle(pt, vm, ctx);\n\n\t\t\t// Body\n\t\t\tthis.drawBody(pt, vm, ctx);\n\n\t\t\t// Footer\n\t\t\tthis.drawFooter(pt, vm, ctx);\n\n\t\t\thelpers$1.rtl.restoreTextDirection(ctx, vm.textDirection);\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t * @returns {boolean} true if the tooltip changed\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me._options;\n\t\tvar changed = false;\n\n\t\tme._lastActive = me._lastActive || [];\n\n\t\t// Find Active Elements for tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme._active = [];\n\t\t} else {\n\t\t\tme._active = me._chart.getElementsAtEventForMode(e, options.mode, options);\n\t\t\tif (options.reverse) {\n\t\t\t\tme._active.reverse();\n\t\t\t}\n\t\t}\n\n\t\t// Remember Last Actives\n\t\tchanged = !helpers$1.arrayEquals(me._active, me._lastActive);\n\n\t\t// Only handle target event on tooltip change\n\t\tif (changed) {\n\t\t\tme._lastActive = me._active;\n\n\t\t\tif (options.enabled || options.custom) {\n\t\t\t\tme._eventPosition = {\n\t\t\t\t\tx: e.x,\n\t\t\t\t\ty: e.y\n\t\t\t\t};\n\n\t\t\t\tme.update(true);\n\t\t\t\tme.pivot();\n\t\t\t}\n\t\t}\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * @namespace Chart.Tooltip.positioners\n */\nvar positioners_1 = positioners;\n\nvar core_tooltip = exports$4;\ncore_tooltip.positioners = positioners_1;\n\nvar valueOrDefault$9 = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\telements: {},\n\tevents: [\n\t\t'mousemove',\n\t\t'mouseout',\n\t\t'click',\n\t\t'touchstart',\n\t\t'touchmove'\n\t],\n\thover: {\n\t\tonHover: null,\n\t\tmode: 'nearest',\n\t\tintersect: true,\n\t\tanimationDuration: 400\n\t},\n\tonClick: null,\n\tmaintainAspectRatio: true,\n\tresponsive: true,\n\tresponsiveAnimationDuration: 0\n});\n\n/**\n * Recursively merge the given config objects representing the `scales` option\n * by incorporating scale defaults in `xAxes` and `yAxes` array items, then\n * returns a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeScaleConfig(/* config objects ... */) {\n\treturn helpers$1.merge({}, [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tif (key === 'xAxes' || key === 'yAxes') {\n\t\t\t\tvar slen = source[key].length;\n\t\t\t\tvar i, type, scale;\n\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\ttarget[key] = [];\n\t\t\t\t}\n\n\t\t\t\tfor (i = 0; i < slen; ++i) {\n\t\t\t\t\tscale = source[key][i];\n\t\t\t\t\ttype = valueOrDefault$9(scale.type, key === 'xAxes' ? 'category' : 'linear');\n\n\t\t\t\t\tif (i >= target[key].length) {\n\t\t\t\t\t\ttarget[key].push({});\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!target[key][i].type || (scale.type && scale.type !== target[key][i].type)) {\n\t\t\t\t\t\t// new/untyped scale or type changed: let's apply the new defaults\n\t\t\t\t\t\t// then merge source scale to correctly overwrite the defaults.\n\t\t\t\t\t\thelpers$1.merge(target[key][i], [core_scaleService.getScaleDefaults(type), scale]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// scales type are the same\n\t\t\t\t\t\thelpers$1.merge(target[key][i], scale);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\n/**\n * Recursively merge the given config objects as the root options by handling\n * default scale options for the `scales` and `scale` properties, then returns\n * a deep copy of the result, thus doesn't alter inputs.\n */\nfunction mergeConfig(/* config objects ... */) {\n\treturn helpers$1.merge({}, [].slice.call(arguments), {\n\t\tmerger: function(key, target, source, options) {\n\t\t\tvar tval = target[key] || {};\n\t\t\tvar sval = source[key];\n\n\t\t\tif (key === 'scales') {\n\t\t\t\t// scale config merging is complex. Add our own function here for that\n\t\t\t\ttarget[key] = mergeScaleConfig(tval, sval);\n\t\t\t} else if (key === 'scale') {\n\t\t\t\t// used in polar area & radar charts since there is only one scale\n\t\t\t\ttarget[key] = helpers$1.merge(tval, [core_scaleService.getScaleDefaults(sval.type), sval]);\n\t\t\t} else {\n\t\t\t\thelpers$1._merger(key, target, source, options);\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction initConfig(config) {\n\tconfig = config || {};\n\n\t// Do NOT use mergeConfig for the data object because this method merges arrays\n\t// and so would change references to labels and datasets, preventing data updates.\n\tvar data = config.data = config.data || {};\n\tdata.datasets = data.datasets || [];\n\tdata.labels = data.labels || [];\n\n\tconfig.options = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[config.type],\n\t\tconfig.options || {});\n\n\treturn config;\n}\n\nfunction updateConfig(chart) {\n\tvar newOptions = chart.options;\n\n\thelpers$1.each(chart.scales, function(scale) {\n\t\tcore_layouts.removeBox(chart, scale);\n\t});\n\n\tnewOptions = mergeConfig(\n\t\tcore_defaults.global,\n\t\tcore_defaults[chart.config.type],\n\t\tnewOptions);\n\n\tchart.options = chart.config.options = newOptions;\n\tchart.ensureScalesHaveIDs();\n\tchart.buildOrUpdateScales();\n\n\t// Tooltip\n\tchart.tooltip._options = newOptions.tooltips;\n\tchart.tooltip.initialize();\n}\n\nfunction nextAvailableScaleId(axesOpts, prefix, index) {\n\tvar id;\n\tvar hasId = function(obj) {\n\t\treturn obj.id === id;\n\t};\n\n\tdo {\n\t\tid = prefix + index++;\n\t} while (helpers$1.findIndex(axesOpts, hasId) >= 0);\n\n\treturn id;\n}\n\nfunction positionIsHorizontal(position) {\n\treturn position === 'top' || position === 'bottom';\n}\n\nfunction compare2Level(l1, l2) {\n\treturn function(a, b) {\n\t\treturn a[l1] === b[l1]\n\t\t\t? a[l2] - b[l2]\n\t\t\t: a[l1] - b[l1];\n\t};\n}\n\nvar Chart = function(item, config) {\n\tthis.construct(item, config);\n\treturn this;\n};\n\nhelpers$1.extend(Chart.prototype, /** @lends Chart */ {\n\t/**\n\t * @private\n\t */\n\tconstruct: function(item, config) {\n\t\tvar me = this;\n\n\t\tconfig = initConfig(config);\n\n\t\tvar context = platform.acquireContext(item, config);\n\t\tvar canvas = context && context.canvas;\n\t\tvar height = canvas && canvas.height;\n\t\tvar width = canvas && canvas.width;\n\n\t\tme.id = helpers$1.uid();\n\t\tme.ctx = context;\n\t\tme.canvas = canvas;\n\t\tme.config = config;\n\t\tme.width = width;\n\t\tme.height = height;\n\t\tme.aspectRatio = height ? width / height : null;\n\t\tme.options = config.options;\n\t\tme._bufferedRender = false;\n\t\tme._layers = [];\n\n\t\t/**\n\t\t * Provided for backward compatibility, Chart and Chart.Controller have been merged,\n\t\t * the \"instance\" still need to be defined since it might be called from plugins.\n\t\t * @prop Chart#chart\n\t\t * @deprecated since version 2.6.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tme.chart = me;\n\t\tme.controller = me; // chart.chart.controller #inception\n\n\t\t// Add the chart instance to the global namespace\n\t\tChart.instances[me.id] = me;\n\n\t\t// Define alias to the config data: `chart.data === chart.config.data`\n\t\tObject.defineProperty(me, 'data', {\n\t\t\tget: function() {\n\t\t\t\treturn me.config.data;\n\t\t\t},\n\t\t\tset: function(value) {\n\t\t\t\tme.config.data = value;\n\t\t\t}\n\t\t});\n\n\t\tif (!context || !canvas) {\n\t\t\t// The given item is not a compatible context2d element, let's return before finalizing\n\t\t\t// the chart initialization but after setting basic chart / controller properties that\n\t\t\t// can help to figure out that the chart is not valid (e.g chart.canvas !== null);\n\t\t\t// https://github.com/chartjs/Chart.js/issues/2807\n\t\t\tconsole.error(\"Failed to create chart: can't acquire context from the given item\");\n\t\t\treturn;\n\t\t}\n\n\t\tme.initialize();\n\t\tme.update();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinitialize: function() {\n\t\tvar me = this;\n\n\t\t// Before init plugin notification\n\t\tcore_plugins.notify(me, 'beforeInit');\n\n\t\thelpers$1.retinaScale(me, me.options.devicePixelRatio);\n\n\t\tme.bindEvents();\n\n\t\tif (me.options.responsive) {\n\t\t\t// Initial resize before chart draws (must be silent to preserve initial animations).\n\t\t\tme.resize(true);\n\t\t}\n\n\t\tme.initToolTip();\n\n\t\t// After init plugin notification\n\t\tcore_plugins.notify(me, 'afterInit');\n\n\t\treturn me;\n\t},\n\n\tclear: function() {\n\t\thelpers$1.canvas.clear(this);\n\t\treturn this;\n\t},\n\n\tstop: function() {\n\t\t// Stops any current animation loop occurring\n\t\tcore_animations.cancelAnimation(this);\n\t\treturn this;\n\t},\n\n\tresize: function(silent) {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar canvas = me.canvas;\n\t\tvar aspectRatio = (options.maintainAspectRatio && me.aspectRatio) || null;\n\n\t\t// the canvas render width and height will be casted to integers so make sure that\n\t\t// the canvas display style uses the same integer values to avoid blurring effect.\n\n\t\t// Set to 0 instead of canvas.size because the size defaults to 300x150 if the element is collapsed\n\t\tvar newWidth = Math.max(0, Math.floor(helpers$1.getMaximumWidth(canvas)));\n\t\tvar newHeight = Math.max(0, Math.floor(aspectRatio ? newWidth / aspectRatio : helpers$1.getMaximumHeight(canvas)));\n\n\t\tif (me.width === newWidth && me.height === newHeight) {\n\t\t\treturn;\n\t\t}\n\n\t\tcanvas.width = me.width = newWidth;\n\t\tcanvas.height = me.height = newHeight;\n\t\tcanvas.style.width = newWidth + 'px';\n\t\tcanvas.style.height = newHeight + 'px';\n\n\t\thelpers$1.retinaScale(me, options.devicePixelRatio);\n\n\t\tif (!silent) {\n\t\t\t// Notify any plugins about the resize\n\t\t\tvar newSize = {width: newWidth, height: newHeight};\n\t\t\tcore_plugins.notify(me, 'resize', [newSize]);\n\n\t\t\t// Notify of resize\n\t\t\tif (options.onResize) {\n\t\t\t\toptions.onResize(me, newSize);\n\t\t\t}\n\n\t\t\tme.stop();\n\t\t\tme.update({\n\t\t\t\tduration: options.responsiveAnimationDuration\n\t\t\t});\n\t\t}\n\t},\n\n\tensureScalesHaveIDs: function() {\n\t\tvar options = this.options;\n\t\tvar scalesOptions = options.scales || {};\n\t\tvar scaleOptions = options.scale;\n\n\t\thelpers$1.each(scalesOptions.xAxes, function(xAxisOptions, index) {\n\t\t\tif (!xAxisOptions.id) {\n\t\t\t\txAxisOptions.id = nextAvailableScaleId(scalesOptions.xAxes, 'x-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.each(scalesOptions.yAxes, function(yAxisOptions, index) {\n\t\t\tif (!yAxisOptions.id) {\n\t\t\t\tyAxisOptions.id = nextAvailableScaleId(scalesOptions.yAxes, 'y-axis-', index);\n\t\t\t}\n\t\t});\n\n\t\tif (scaleOptions) {\n\t\t\tscaleOptions.id = scaleOptions.id || 'scale';\n\t\t}\n\t},\n\n\t/**\n\t * Builds a map of scale ID to scale object for future lookup.\n\t */\n\tbuildOrUpdateScales: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar scales = me.scales || {};\n\t\tvar items = [];\n\t\tvar updated = Object.keys(scales).reduce(function(obj, id) {\n\t\t\tobj[id] = false;\n\t\t\treturn obj;\n\t\t}, {});\n\n\t\tif (options.scales) {\n\t\t\titems = items.concat(\n\t\t\t\t(options.scales.xAxes || []).map(function(xAxisOptions) {\n\t\t\t\t\treturn {options: xAxisOptions, dtype: 'category', dposition: 'bottom'};\n\t\t\t\t}),\n\t\t\t\t(options.scales.yAxes || []).map(function(yAxisOptions) {\n\t\t\t\t\treturn {options: yAxisOptions, dtype: 'linear', dposition: 'left'};\n\t\t\t\t})\n\t\t\t);\n\t\t}\n\n\t\tif (options.scale) {\n\t\t\titems.push({\n\t\t\t\toptions: options.scale,\n\t\t\t\tdtype: 'radialLinear',\n\t\t\t\tisDefault: true,\n\t\t\t\tdposition: 'chartArea'\n\t\t\t});\n\t\t}\n\n\t\thelpers$1.each(items, function(item) {\n\t\t\tvar scaleOptions = item.options;\n\t\t\tvar id = scaleOptions.id;\n\t\t\tvar scaleType = valueOrDefault$9(scaleOptions.type, item.dtype);\n\n\t\t\tif (positionIsHorizontal(scaleOptions.position) !== positionIsHorizontal(item.dposition)) {\n\t\t\t\tscaleOptions.position = item.dposition;\n\t\t\t}\n\n\t\t\tupdated[id] = true;\n\t\t\tvar scale = null;\n\t\t\tif (id in scales && scales[id].type === scaleType) {\n\t\t\t\tscale = scales[id];\n\t\t\t\tscale.options = scaleOptions;\n\t\t\t\tscale.ctx = me.ctx;\n\t\t\t\tscale.chart = me;\n\t\t\t} else {\n\t\t\t\tvar scaleClass = core_scaleService.getScaleConstructor(scaleType);\n\t\t\t\tif (!scaleClass) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tscale = new scaleClass({\n\t\t\t\t\tid: id,\n\t\t\t\t\ttype: scaleType,\n\t\t\t\t\toptions: scaleOptions,\n\t\t\t\t\tctx: me.ctx,\n\t\t\t\t\tchart: me\n\t\t\t\t});\n\t\t\t\tscales[scale.id] = scale;\n\t\t\t}\n\n\t\t\tscale.mergeTicksOptions();\n\n\t\t\t// TODO(SB): I think we should be able to remove this custom case (options.scale)\n\t\t\t// and consider it as a regular scale part of the \"scales\"\" map only! This would\n\t\t\t// make the logic easier and remove some useless? custom code.\n\t\t\tif (item.isDefault) {\n\t\t\t\tme.scale = scale;\n\t\t\t}\n\t\t});\n\t\t// clear up discarded scales\n\t\thelpers$1.each(updated, function(hasUpdated, id) {\n\t\t\tif (!hasUpdated) {\n\t\t\t\tdelete scales[id];\n\t\t\t}\n\t\t});\n\n\t\tme.scales = scales;\n\n\t\tcore_scaleService.addScalesToLayout(this);\n\t},\n\n\tbuildOrUpdateControllers: function() {\n\t\tvar me = this;\n\t\tvar newControllers = [];\n\t\tvar datasets = me.data.datasets;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tvar dataset = datasets[i];\n\t\t\tvar meta = me.getDatasetMeta(i);\n\t\t\tvar type = dataset.type || me.config.type;\n\n\t\t\tif (meta.type && meta.type !== type) {\n\t\t\t\tme.destroyDatasetMeta(i);\n\t\t\t\tmeta = me.getDatasetMeta(i);\n\t\t\t}\n\t\t\tmeta.type = type;\n\t\t\tmeta.order = dataset.order || 0;\n\t\t\tmeta.index = i;\n\n\t\t\tif (meta.controller) {\n\t\t\t\tmeta.controller.updateIndex(i);\n\t\t\t\tmeta.controller.linkScales();\n\t\t\t} else {\n\t\t\t\tvar ControllerClass = controllers[meta.type];\n\t\t\t\tif (ControllerClass === undefined) {\n\t\t\t\t\tthrow new Error('\"' + meta.type + '\" is not a chart type.');\n\t\t\t\t}\n\n\t\t\t\tmeta.controller = new ControllerClass(me, i);\n\t\t\t\tnewControllers.push(meta.controller);\n\t\t\t}\n\t\t}\n\n\t\treturn newControllers;\n\t},\n\n\t/**\n\t * Reset the elements of all datasets\n\t * @private\n\t */\n\tresetElements: function() {\n\t\tvar me = this;\n\t\thelpers$1.each(me.data.datasets, function(dataset, datasetIndex) {\n\t\t\tme.getDatasetMeta(datasetIndex).controller.reset();\n\t\t}, me);\n\t},\n\n\t/**\n\t* Resets the chart back to it's state before the initial animation\n\t*/\n\treset: function() {\n\t\tthis.resetElements();\n\t\tthis.tooltip.initialize();\n\t},\n\n\tupdate: function(config) {\n\t\tvar me = this;\n\t\tvar i, ilen;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tupdateConfig(me);\n\n\t\t// plugins options references might have change, let's invalidate the cache\n\t\t// https://github.com/chartjs/Chart.js/issues/5111#issuecomment-355934167\n\t\tcore_plugins._invalidate(me);\n\n\t\tif (core_plugins.notify(me, 'beforeUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// In case the entire data object changed\n\t\tme.tooltip._data = me.data;\n\n\t\t// Make sure dataset controllers are updated and new controllers are reset\n\t\tvar newControllers = me.buildOrUpdateControllers();\n\n\t\t// Make sure all dataset controllers have correct meta data counts\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n\t\t\tme.getDatasetMeta(i).controller.buildOrUpdateElements();\n\t\t}\n\n\t\tme.updateLayout();\n\n\t\t// Can only reset the new controllers after the scales have been updated\n\t\tif (me.options.animation && me.options.animation.duration) {\n\t\t\thelpers$1.each(newControllers, function(controller) {\n\t\t\t\tcontroller.reset();\n\t\t\t});\n\t\t}\n\n\t\tme.updateDatasets();\n\n\t\t// Need to reset tooltip in case it is displayed with elements that are removed\n\t\t// after update.\n\t\tme.tooltip.initialize();\n\n\t\t// Last active contains items that were previously in the tooltip.\n\t\t// When we reset the tooltip, we need to clear it\n\t\tme.lastActive = [];\n\n\t\t// Do this before render so that any plugins that need final scale updates can use it\n\t\tcore_plugins.notify(me, 'afterUpdate');\n\n\t\tme._layers.sort(compare2Level('z', '_idx'));\n\n\t\tif (me._bufferedRender) {\n\t\t\tme._bufferedRequest = {\n\t\t\t\tduration: config.duration,\n\t\t\t\teasing: config.easing,\n\t\t\t\tlazy: config.lazy\n\t\t\t};\n\t\t} else {\n\t\t\tme.render(config);\n\t\t}\n\t},\n\n\t/**\n\t * Updates the chart layout unless a plugin returns `false` to the `beforeLayout`\n\t * hook, in which case, plugins will not be called on `afterLayout`.\n\t * @private\n\t */\n\tupdateLayout: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeLayout') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tcore_layouts.update(this, this.width, this.height);\n\n\t\tme._layers = [];\n\t\thelpers$1.each(me.boxes, function(box) {\n\t\t\t// _configure is called twice, once in core.scale.update and once here.\n\t\t\t// Here the boxes are fully updated and at their final positions.\n\t\t\tif (box._configure) {\n\t\t\t\tbox._configure();\n\t\t\t}\n\t\t\tme._layers.push.apply(me._layers, box._layers());\n\t\t}, me);\n\n\t\tme._layers.forEach(function(item, index) {\n\t\t\titem._idx = index;\n\t\t});\n\n\t\t/**\n\t\t * Provided for backward compatibility, use `afterLayout` instead.\n\t\t * @method IPlugin#afterScaleUpdate\n\t\t * @deprecated since version 2.5.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tcore_plugins.notify(me, 'afterScaleUpdate');\n\t\tcore_plugins.notify(me, 'afterLayout');\n\t},\n\n\t/**\n\t * Updates all datasets unless a plugin returns `false` to the `beforeDatasetsUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetsUpdate`.\n\t * @private\n\t */\n\tupdateDatasets: function() {\n\t\tvar me = this;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsUpdate') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (var i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.updateDataset(i);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsUpdate');\n\t},\n\n\t/**\n\t * Updates dataset at index unless a plugin returns `false` to the `beforeDatasetUpdate`\n\t * hook, in which case, plugins will not be called on `afterDatasetUpdate`.\n\t * @private\n\t */\n\tupdateDataset: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getDatasetMeta(index);\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: index\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetUpdate', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller._update();\n\n\t\tcore_plugins.notify(me, 'afterDatasetUpdate', [args]);\n\t},\n\n\trender: function(config) {\n\t\tvar me = this;\n\n\t\tif (!config || typeof config !== 'object') {\n\t\t\t// backwards compatibility\n\t\t\tconfig = {\n\t\t\t\tduration: config,\n\t\t\t\tlazy: arguments[1]\n\t\t\t};\n\t\t}\n\n\t\tvar animationOptions = me.options.animation;\n\t\tvar duration = valueOrDefault$9(config.duration, animationOptions && animationOptions.duration);\n\t\tvar lazy = config.lazy;\n\n\t\tif (core_plugins.notify(me, 'beforeRender') === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar onComplete = function(animation) {\n\t\t\tcore_plugins.notify(me, 'afterRender');\n\t\t\thelpers$1.callback(animationOptions && animationOptions.onComplete, [animation], me);\n\t\t};\n\n\t\tif (animationOptions && duration) {\n\t\t\tvar animation = new core_animation({\n\t\t\t\tnumSteps: duration / 16.66, // 60 fps\n\t\t\t\teasing: config.easing || animationOptions.easing,\n\n\t\t\t\trender: function(chart, animationObject) {\n\t\t\t\t\tvar easingFunction = helpers$1.easing.effects[animationObject.easing];\n\t\t\t\t\tvar currentStep = animationObject.currentStep;\n\t\t\t\t\tvar stepDecimal = currentStep / animationObject.numSteps;\n\n\t\t\t\t\tchart.draw(easingFunction(stepDecimal), stepDecimal, currentStep);\n\t\t\t\t},\n\n\t\t\t\tonAnimationProgress: animationOptions.onProgress,\n\t\t\t\tonAnimationComplete: onComplete\n\t\t\t});\n\n\t\t\tcore_animations.addAnimation(me, animation, duration, lazy);\n\t\t} else {\n\t\t\tme.draw();\n\n\t\t\t// See https://github.com/chartjs/Chart.js/issues/3781\n\t\t\tonComplete(new core_animation({numSteps: 0, chart: me}));\n\t\t}\n\n\t\treturn me;\n\t},\n\n\tdraw: function(easingValue) {\n\t\tvar me = this;\n\t\tvar i, layers;\n\n\t\tme.clear();\n\n\t\tif (helpers$1.isNullOrUndef(easingValue)) {\n\t\t\teasingValue = 1;\n\t\t}\n\n\t\tme.transition(easingValue);\n\n\t\tif (me.width <= 0 || me.height <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (core_plugins.notify(me, 'beforeDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Because of plugin hooks (before/afterDatasetsDraw), datasets can't\n\t\t// currently be part of layers. Instead, we draw\n\t\t// layers <= 0 before(default, backward compat), and the rest after\n\t\tlayers = me._layers;\n\t\tfor (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme.drawDatasets(easingValue);\n\n\t\t// Rest of layers\n\t\tfor (; i < layers.length; ++i) {\n\t\t\tlayers[i].draw(me.chartArea);\n\t\t}\n\n\t\tme._drawTooltip(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDraw', [easingValue]);\n\t},\n\n\t/**\n\t * @private\n\t */\n\ttransition: function(easingValue) {\n\t\tvar me = this;\n\n\t\tfor (var i = 0, ilen = (me.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (me.isDatasetVisible(i)) {\n\t\t\t\tme.getDatasetMeta(i).controller.transition(easingValue);\n\t\t\t}\n\t\t}\n\n\t\tme.tooltip.transition(easingValue);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedDatasetMetas: function(filterVisible) {\n\t\tvar me = this;\n\t\tvar datasets = me.data.datasets || [];\n\t\tvar result = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; ++i) {\n\t\t\tif (!filterVisible || me.isDatasetVisible(i)) {\n\t\t\t\tresult.push(me.getDatasetMeta(i));\n\t\t\t}\n\t\t}\n\n\t\tresult.sort(compare2Level('order', 'index'));\n\n\t\treturn result;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getSortedVisibleDatasetMetas: function() {\n\t\treturn this._getSortedDatasetMetas(true);\n\t},\n\n\t/**\n\t * Draws all datasets unless a plugin returns `false` to the `beforeDatasetsDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetsDraw`.\n\t * @private\n\t */\n\tdrawDatasets: function(easingValue) {\n\t\tvar me = this;\n\t\tvar metasets, i;\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetsDraw', [easingValue]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmetasets = me._getSortedVisibleDatasetMetas();\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tme.drawDataset(metasets[i], easingValue);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterDatasetsDraw', [easingValue]);\n\t},\n\n\t/**\n\t * Draws dataset at index unless a plugin returns `false` to the `beforeDatasetDraw`\n\t * hook, in which case, plugins will not be called on `afterDatasetDraw`.\n\t * @private\n\t */\n\tdrawDataset: function(meta, easingValue) {\n\t\tvar me = this;\n\t\tvar args = {\n\t\t\tmeta: meta,\n\t\t\tindex: meta.index,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeDatasetDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\tmeta.controller.draw(easingValue);\n\n\t\tcore_plugins.notify(me, 'afterDatasetDraw', [args]);\n\t},\n\n\t/**\n\t * Draws tooltip unless a plugin returns `false` to the `beforeTooltipDraw`\n\t * hook, in which case, plugins will not be called on `afterTooltipDraw`.\n\t * @private\n\t */\n\t_drawTooltip: function(easingValue) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\t\tvar args = {\n\t\t\ttooltip: tooltip,\n\t\t\teasingValue: easingValue\n\t\t};\n\n\t\tif (core_plugins.notify(me, 'beforeTooltipDraw', [args]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\ttooltip.draw();\n\n\t\tcore_plugins.notify(me, 'afterTooltipDraw', [args]);\n\t},\n\n\t/**\n\t * Get the single element that was clicked on\n\t * @return An object containing the dataset index and element index of the matching element. Also contains the rectangle that was draw\n\t */\n\tgetElementAtEvent: function(e) {\n\t\treturn core_interaction.modes.single(this, e);\n\t},\n\n\tgetElementsAtEvent: function(e) {\n\t\treturn core_interaction.modes.label(this, e, {intersect: true});\n\t},\n\n\tgetElementsAtXAxis: function(e) {\n\t\treturn core_interaction.modes['x-axis'](this, e, {intersect: true});\n\t},\n\n\tgetElementsAtEventForMode: function(e, mode, options) {\n\t\tvar method = core_interaction.modes[mode];\n\t\tif (typeof method === 'function') {\n\t\t\treturn method(this, e, options);\n\t\t}\n\n\t\treturn [];\n\t},\n\n\tgetDatasetAtEvent: function(e) {\n\t\treturn core_interaction.modes.dataset(this, e, {intersect: true});\n\t},\n\n\tgetDatasetMeta: function(datasetIndex) {\n\t\tvar me = this;\n\t\tvar dataset = me.data.datasets[datasetIndex];\n\t\tif (!dataset._meta) {\n\t\t\tdataset._meta = {};\n\t\t}\n\n\t\tvar meta = dataset._meta[me.id];\n\t\tif (!meta) {\n\t\t\tmeta = dataset._meta[me.id] = {\n\t\t\t\ttype: null,\n\t\t\t\tdata: [],\n\t\t\t\tdataset: null,\n\t\t\t\tcontroller: null,\n\t\t\t\thidden: null,\t\t\t// See isDatasetVisible() comment\n\t\t\t\txAxisID: null,\n\t\t\t\tyAxisID: null,\n\t\t\t\torder: dataset.order || 0,\n\t\t\t\tindex: datasetIndex\n\t\t\t};\n\t\t}\n\n\t\treturn meta;\n\t},\n\n\tgetVisibleDatasetCount: function() {\n\t\tvar count = 0;\n\t\tfor (var i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (this.isDatasetVisible(i)) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t}\n\t\treturn count;\n\t},\n\n\tisDatasetVisible: function(datasetIndex) {\n\t\tvar meta = this.getDatasetMeta(datasetIndex);\n\n\t\t// meta.hidden is a per chart dataset hidden flag override with 3 states: if true or false,\n\t\t// the dataset.hidden value is ignored, else if null, the dataset hidden state is returned.\n\t\treturn typeof meta.hidden === 'boolean' ? !meta.hidden : !this.data.datasets[datasetIndex].hidden;\n\t},\n\n\tgenerateLegend: function() {\n\t\treturn this.options.legendCallback(this);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroyDatasetMeta: function(datasetIndex) {\n\t\tvar id = this.id;\n\t\tvar dataset = this.data.datasets[datasetIndex];\n\t\tvar meta = dataset._meta && dataset._meta[id];\n\n\t\tif (meta) {\n\t\t\tmeta.controller.destroy();\n\t\t\tdelete dataset._meta[id];\n\t\t}\n\t},\n\n\tdestroy: function() {\n\t\tvar me = this;\n\t\tvar canvas = me.canvas;\n\t\tvar i, ilen;\n\n\t\tme.stop();\n\n\t\t// dataset controllers need to cleanup associated data\n\t\tfor (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n\t\t\tme.destroyDatasetMeta(i);\n\t\t}\n\n\t\tif (canvas) {\n\t\t\tme.unbindEvents();\n\t\t\thelpers$1.canvas.clear(me);\n\t\t\tplatform.releaseContext(me.ctx);\n\t\t\tme.canvas = null;\n\t\t\tme.ctx = null;\n\t\t}\n\n\t\tcore_plugins.notify(me, 'destroy');\n\n\t\tdelete Chart.instances[me.id];\n\t},\n\n\ttoBase64Image: function() {\n\t\treturn this.canvas.toDataURL.apply(this.canvas, arguments);\n\t},\n\n\tinitToolTip: function() {\n\t\tvar me = this;\n\t\tme.tooltip = new core_tooltip({\n\t\t\t_chart: me,\n\t\t\t_chartInstance: me, // deprecated, backward compatibility\n\t\t\t_data: me.data,\n\t\t\t_options: me.options.tooltips\n\t\t}, me);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners = {};\n\t\tvar listener = function() {\n\t\t\tme.eventHandler.apply(me, arguments);\n\t\t};\n\n\t\thelpers$1.each(me.options.events, function(type) {\n\t\t\tplatform.addEventListener(me, type, listener);\n\t\t\tlisteners[type] = listener;\n\t\t});\n\n\t\t// Elements used to detect size change should not be injected for non responsive charts.\n\t\t// See https://github.com/chartjs/Chart.js/issues/2210\n\t\tif (me.options.responsive) {\n\t\t\tlistener = function() {\n\t\t\t\tme.resize();\n\t\t\t};\n\n\t\t\tplatform.addEventListener(me, 'resize', listener);\n\t\t\tlisteners.resize = listener;\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tunbindEvents: function() {\n\t\tvar me = this;\n\t\tvar listeners = me._listeners;\n\t\tif (!listeners) {\n\t\t\treturn;\n\t\t}\n\n\t\tdelete me._listeners;\n\t\thelpers$1.each(listeners, function(listener, type) {\n\t\t\tplatform.removeEventListener(me, type, listener);\n\t\t});\n\t},\n\n\tupdateHoverStyle: function(elements, mode, enabled) {\n\t\tvar prefix = enabled ? 'set' : 'remove';\n\t\tvar element, i, ilen;\n\n\t\tfor (i = 0, ilen = elements.length; i < ilen; ++i) {\n\t\t\telement = elements[i];\n\t\t\tif (element) {\n\t\t\t\tthis.getDatasetMeta(element._datasetIndex).controller[prefix + 'HoverStyle'](element);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'dataset') {\n\t\t\tthis.getDatasetMeta(elements[0]._datasetIndex).controller['_' + prefix + 'DatasetHoverStyle']();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\teventHandler: function(e) {\n\t\tvar me = this;\n\t\tvar tooltip = me.tooltip;\n\n\t\tif (core_plugins.notify(me, 'beforeEvent', [e]) === false) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Buffer any update calls so that renders do not occur\n\t\tme._bufferedRender = true;\n\t\tme._bufferedRequest = null;\n\n\t\tvar changed = me.handleEvent(e);\n\t\t// for smooth tooltip animations issue #4989\n\t\t// the tooltip should be the source of change\n\t\t// Animation check workaround:\n\t\t// tooltip._start will be null when tooltip isn't animating\n\t\tif (tooltip) {\n\t\t\tchanged = tooltip._start\n\t\t\t\t? tooltip.handleEvent(e)\n\t\t\t\t: changed | tooltip.handleEvent(e);\n\t\t}\n\n\t\tcore_plugins.notify(me, 'afterEvent', [e]);\n\n\t\tvar bufferedRequest = me._bufferedRequest;\n\t\tif (bufferedRequest) {\n\t\t\t// If we have an update that was triggered, we need to do a normal render\n\t\t\tme.render(bufferedRequest);\n\t\t} else if (changed && !me.animating) {\n\t\t\t// If entering, leaving, or changing elements, animate the change via pivot\n\t\t\tme.stop();\n\n\t\t\t// We only need to render at this point. Updating will cause scales to be\n\t\t\t// recomputed generating flicker & using more memory than necessary.\n\t\t\tme.render({\n\t\t\t\tduration: me.options.hover.animationDuration,\n\t\t\t\tlazy: true\n\t\t\t});\n\t\t}\n\n\t\tme._bufferedRender = false;\n\t\tme._bufferedRequest = null;\n\n\t\treturn me;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event the event to handle\n\t * @return {boolean} true if the chart needs to re-render\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar options = me.options || {};\n\t\tvar hoverOptions = options.hover;\n\t\tvar changed = false;\n\n\t\tme.lastActive = me.lastActive || [];\n\n\t\t// Find Active Elements for hover and tooltips\n\t\tif (e.type === 'mouseout') {\n\t\t\tme.active = [];\n\t\t} else {\n\t\t\tme.active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions);\n\t\t}\n\n\t\t// Invoke onHover hook\n\t\t// Need to call with native event here to not break backwards compatibility\n\t\thelpers$1.callback(options.onHover || options.hover.onHover, [e.native, me.active], me);\n\n\t\tif (e.type === 'mouseup' || e.type === 'click') {\n\t\t\tif (options.onClick) {\n\t\t\t\t// Use e.native here for backwards compatibility\n\t\t\t\toptions.onClick.call(me, e.native, me.active);\n\t\t\t}\n\t\t}\n\n\t\t// Remove styling for last active (even if it may still be active)\n\t\tif (me.lastActive.length) {\n\t\t\tme.updateHoverStyle(me.lastActive, hoverOptions.mode, false);\n\t\t}\n\n\t\t// Built in hover styling\n\t\tif (me.active.length && hoverOptions.mode) {\n\t\t\tme.updateHoverStyle(me.active, hoverOptions.mode, true);\n\t\t}\n\n\t\tchanged = !helpers$1.arrayEquals(me.active, me.lastActive);\n\n\t\t// Remember Last Actives\n\t\tme.lastActive = me.active;\n\n\t\treturn changed;\n\t}\n});\n\n/**\n * NOTE(SB) We actually don't use this container anymore but we need to keep it\n * for backward compatibility. Though, it can still be useful for plugins that\n * would need to work on multiple charts?!\n */\nChart.instances = {};\n\nvar core_controller = Chart;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart instead.\n * @class Chart.Controller\n * @deprecated since version 2.6\n * @todo remove at version 3\n * @private\n */\nChart.Controller = Chart;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\nChart.types = {};\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.configMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.configMerge = mergeConfig;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.helpers.scaleMerge\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\nhelpers$1.scaleMerge = mergeScaleConfig;\n\nvar core_helpers = function() {\n\n\t// -- Basic js utility methods\n\n\thelpers$1.where = function(collection, filterCallback) {\n\t\tif (helpers$1.isArray(collection) && Array.prototype.filter) {\n\t\t\treturn collection.filter(filterCallback);\n\t\t}\n\t\tvar filtered = [];\n\n\t\thelpers$1.each(collection, function(item) {\n\t\t\tif (filterCallback(item)) {\n\t\t\t\tfiltered.push(item);\n\t\t\t}\n\t\t});\n\n\t\treturn filtered;\n\t};\n\thelpers$1.findIndex = Array.prototype.findIndex ?\n\t\tfunction(array, callback, scope) {\n\t\t\treturn array.findIndex(callback, scope);\n\t\t} :\n\t\tfunction(array, callback, scope) {\n\t\t\tscope = scope === undefined ? array : scope;\n\t\t\tfor (var i = 0, ilen = array.length; i < ilen; ++i) {\n\t\t\t\tif (callback.call(scope, array[i], i, array)) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn -1;\n\t\t};\n\thelpers$1.findNextWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to start of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = -1;\n\t\t}\n\t\tfor (var i = startIndex + 1; i < arrayToSearch.length; i++) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.findPreviousWhere = function(arrayToSearch, filterCallback, startIndex) {\n\t\t// Default to end of the array\n\t\tif (helpers$1.isNullOrUndef(startIndex)) {\n\t\t\tstartIndex = arrayToSearch.length;\n\t\t}\n\t\tfor (var i = startIndex - 1; i >= 0; i--) {\n\t\t\tvar currentItem = arrayToSearch[i];\n\t\t\tif (filterCallback(currentItem)) {\n\t\t\t\treturn currentItem;\n\t\t\t}\n\t\t}\n\t};\n\n\t// -- Math methods\n\thelpers$1.isNumber = function(n) {\n\t\treturn !isNaN(parseFloat(n)) && isFinite(n);\n\t};\n\thelpers$1.almostEquals = function(x, y, epsilon) {\n\t\treturn Math.abs(x - y) < epsilon;\n\t};\n\thelpers$1.almostWhole = function(x, epsilon) {\n\t\tvar rounded = Math.round(x);\n\t\treturn ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n\t};\n\thelpers$1.max = function(array) {\n\t\treturn array.reduce(function(max, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.max(max, value);\n\t\t\t}\n\t\t\treturn max;\n\t\t}, Number.NEGATIVE_INFINITY);\n\t};\n\thelpers$1.min = function(array) {\n\t\treturn array.reduce(function(min, value) {\n\t\t\tif (!isNaN(value)) {\n\t\t\t\treturn Math.min(min, value);\n\t\t\t}\n\t\t\treturn min;\n\t\t}, Number.POSITIVE_INFINITY);\n\t};\n\thelpers$1.sign = Math.sign ?\n\t\tfunction(x) {\n\t\t\treturn Math.sign(x);\n\t\t} :\n\t\tfunction(x) {\n\t\t\tx = +x; // convert to a number\n\t\t\tif (x === 0 || isNaN(x)) {\n\t\t\t\treturn x;\n\t\t\t}\n\t\t\treturn x > 0 ? 1 : -1;\n\t\t};\n\thelpers$1.toRadians = function(degrees) {\n\t\treturn degrees * (Math.PI / 180);\n\t};\n\thelpers$1.toDegrees = function(radians) {\n\t\treturn radians * (180 / Math.PI);\n\t};\n\n\t/**\n\t * Returns the number of decimal places\n\t * i.e. the number of digits after the decimal point, of the value of this Number.\n\t * @param {number} x - A number.\n\t * @returns {number} The number of decimal places.\n\t * @private\n\t */\n\thelpers$1._decimalPlaces = function(x) {\n\t\tif (!helpers$1.isFinite(x)) {\n\t\t\treturn;\n\t\t}\n\t\tvar e = 1;\n\t\tvar p = 0;\n\t\twhile (Math.round(x * e) / e !== x) {\n\t\t\te *= 10;\n\t\t\tp++;\n\t\t}\n\t\treturn p;\n\t};\n\n\t// Gets the angle from vertical upright to the point about a centre.\n\thelpers$1.getAngleFromPoint = function(centrePoint, anglePoint) {\n\t\tvar distanceFromXCenter = anglePoint.x - centrePoint.x;\n\t\tvar distanceFromYCenter = anglePoint.y - centrePoint.y;\n\t\tvar radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n\n\t\tvar angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n\n\t\tif (angle < (-0.5 * Math.PI)) {\n\t\t\tangle += 2.0 * Math.PI; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n\t\t}\n\n\t\treturn {\n\t\t\tangle: angle,\n\t\t\tdistance: radialDistanceFromCenter\n\t\t};\n\t};\n\thelpers$1.distanceBetweenPoints = function(pt1, pt2) {\n\t\treturn Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n\t};\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.helpers.aliasPixel\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\thelpers$1.aliasPixel = function(pixelWidth) {\n\t\treturn (pixelWidth % 2 === 0) ? 0 : 0.5;\n\t};\n\n\t/**\n\t * Returns the aligned pixel value to avoid anti-aliasing blur\n\t * @param {Chart} chart - The chart instance.\n\t * @param {number} pixel - A pixel value.\n\t * @param {number} width - The width of the element.\n\t * @returns {number} The aligned pixel value.\n\t * @private\n\t */\n\thelpers$1._alignPixel = function(chart, pixel, width) {\n\t\tvar devicePixelRatio = chart.currentDevicePixelRatio;\n\t\tvar halfWidth = width / 2;\n\t\treturn Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n\t};\n\n\thelpers$1.splineCurve = function(firstPoint, middlePoint, afterPoint, t) {\n\t\t// Props to Rob Spencer at scaled innovation for his post on splining between points\n\t\t// http://scaledinnovation.com/analytics/splines/aboutSplines.html\n\n\t\t// This function must also respect \"skipped\" points\n\n\t\tvar previous = firstPoint.skip ? middlePoint : firstPoint;\n\t\tvar current = middlePoint;\n\t\tvar next = afterPoint.skip ? middlePoint : afterPoint;\n\n\t\tvar d01 = Math.sqrt(Math.pow(current.x - previous.x, 2) + Math.pow(current.y - previous.y, 2));\n\t\tvar d12 = Math.sqrt(Math.pow(next.x - current.x, 2) + Math.pow(next.y - current.y, 2));\n\n\t\tvar s01 = d01 / (d01 + d12);\n\t\tvar s12 = d12 / (d01 + d12);\n\n\t\t// If all points are the same, s01 & s02 will be inf\n\t\ts01 = isNaN(s01) ? 0 : s01;\n\t\ts12 = isNaN(s12) ? 0 : s12;\n\n\t\tvar fa = t * s01; // scaling factor for triangle Ta\n\t\tvar fb = t * s12;\n\n\t\treturn {\n\t\t\tprevious: {\n\t\t\t\tx: current.x - fa * (next.x - previous.x),\n\t\t\t\ty: current.y - fa * (next.y - previous.y)\n\t\t\t},\n\t\t\tnext: {\n\t\t\t\tx: current.x + fb * (next.x - previous.x),\n\t\t\t\ty: current.y + fb * (next.y - previous.y)\n\t\t\t}\n\t\t};\n\t};\n\thelpers$1.EPSILON = Number.EPSILON || 1e-14;\n\thelpers$1.splineCurveMonotone = function(points) {\n\t\t// This function calculates Bézier control points in a similar way than |splineCurve|,\n\t\t// but preserves monotonicity of the provided data and ensures no local extremums are added\n\t\t// between the dataset discrete points due to the interpolation.\n\t\t// See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n\n\t\tvar pointsWithTangents = (points || []).map(function(point) {\n\t\t\treturn {\n\t\t\t\tmodel: point._model,\n\t\t\t\tdeltaK: 0,\n\t\t\t\tmK: 0\n\t\t\t};\n\t\t});\n\n\t\t// Calculate slopes (deltaK) and initialize tangents (mK)\n\t\tvar pointsLen = pointsWithTangents.length;\n\t\tvar i, pointBefore, pointCurrent, pointAfter;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tvar slopeDeltaX = (pointAfter.model.x - pointCurrent.model.x);\n\n\t\t\t\t// In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n\t\t\t\tpointCurrent.deltaK = slopeDeltaX !== 0 ? (pointAfter.model.y - pointCurrent.model.y) / slopeDeltaX : 0;\n\t\t\t}\n\n\t\t\tif (!pointBefore || pointBefore.model.skip) {\n\t\t\t\tpointCurrent.mK = pointCurrent.deltaK;\n\t\t\t} else if (!pointAfter || pointAfter.model.skip) {\n\t\t\t\tpointCurrent.mK = pointBefore.deltaK;\n\t\t\t} else if (this.sign(pointBefore.deltaK) !== this.sign(pointCurrent.deltaK)) {\n\t\t\t\tpointCurrent.mK = 0;\n\t\t\t} else {\n\t\t\t\tpointCurrent.mK = (pointBefore.deltaK + pointCurrent.deltaK) / 2;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust tangents to ensure monotonic properties\n\t\tvar alphaK, betaK, tauK, squaredMagnitude;\n\t\tfor (i = 0; i < pointsLen - 1; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tpointAfter = pointsWithTangents[i + 1];\n\t\t\tif (pointCurrent.model.skip || pointAfter.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (helpers$1.almostEquals(pointCurrent.deltaK, 0, this.EPSILON)) {\n\t\t\t\tpointCurrent.mK = pointAfter.mK = 0;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talphaK = pointCurrent.mK / pointCurrent.deltaK;\n\t\t\tbetaK = pointAfter.mK / pointCurrent.deltaK;\n\t\t\tsquaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n\t\t\tif (squaredMagnitude <= 9) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttauK = 3 / Math.sqrt(squaredMagnitude);\n\t\t\tpointCurrent.mK = alphaK * tauK * pointCurrent.deltaK;\n\t\t\tpointAfter.mK = betaK * tauK * pointCurrent.deltaK;\n\t\t}\n\n\t\t// Compute control points\n\t\tvar deltaX;\n\t\tfor (i = 0; i < pointsLen; ++i) {\n\t\t\tpointCurrent = pointsWithTangents[i];\n\t\t\tif (pointCurrent.model.skip) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpointBefore = i > 0 ? pointsWithTangents[i - 1] : null;\n\t\t\tpointAfter = i < pointsLen - 1 ? pointsWithTangents[i + 1] : null;\n\t\t\tif (pointBefore && !pointBefore.model.skip) {\n\t\t\t\tdeltaX = (pointCurrent.model.x - pointBefore.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointPreviousX = pointCurrent.model.x - deltaX;\n\t\t\t\tpointCurrent.model.controlPointPreviousY = pointCurrent.model.y - deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t\tif (pointAfter && !pointAfter.model.skip) {\n\t\t\t\tdeltaX = (pointAfter.model.x - pointCurrent.model.x) / 3;\n\t\t\t\tpointCurrent.model.controlPointNextX = pointCurrent.model.x + deltaX;\n\t\t\t\tpointCurrent.model.controlPointNextY = pointCurrent.model.y + deltaX * pointCurrent.mK;\n\t\t\t}\n\t\t}\n\t};\n\thelpers$1.nextItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index >= collection.length - 1 ? collection[0] : collection[index + 1];\n\t\t}\n\t\treturn index >= collection.length - 1 ? collection[collection.length - 1] : collection[index + 1];\n\t};\n\thelpers$1.previousItem = function(collection, index, loop) {\n\t\tif (loop) {\n\t\t\treturn index <= 0 ? collection[collection.length - 1] : collection[index - 1];\n\t\t}\n\t\treturn index <= 0 ? collection[0] : collection[index - 1];\n\t};\n\t// Implementation of the nice number algorithm used in determining where axis labels will go\n\thelpers$1.niceNum = function(range, round) {\n\t\tvar exponent = Math.floor(helpers$1.log10(range));\n\t\tvar fraction = range / Math.pow(10, exponent);\n\t\tvar niceFraction;\n\n\t\tif (round) {\n\t\t\tif (fraction < 1.5) {\n\t\t\t\tniceFraction = 1;\n\t\t\t} else if (fraction < 3) {\n\t\t\t\tniceFraction = 2;\n\t\t\t} else if (fraction < 7) {\n\t\t\t\tniceFraction = 5;\n\t\t\t} else {\n\t\t\t\tniceFraction = 10;\n\t\t\t}\n\t\t} else if (fraction <= 1.0) {\n\t\t\tniceFraction = 1;\n\t\t} else if (fraction <= 2) {\n\t\t\tniceFraction = 2;\n\t\t} else if (fraction <= 5) {\n\t\t\tniceFraction = 5;\n\t\t} else {\n\t\t\tniceFraction = 10;\n\t\t}\n\n\t\treturn niceFraction * Math.pow(10, exponent);\n\t};\n\t// Request animation polyfill - https://www.paulirish.com/2011/requestanimationframe-for-smart-animating/\n\thelpers$1.requestAnimFrame = (function() {\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn function(callback) {\n\t\t\t\tcallback();\n\t\t\t};\n\t\t}\n\t\treturn window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\twindow.oRequestAnimationFrame ||\n\t\t\twindow.msRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000 / 60);\n\t\t\t};\n\t}());\n\t// -- DOM methods\n\thelpers$1.getRelativePosition = function(evt, chart) {\n\t\tvar mouseX, mouseY;\n\t\tvar e = evt.originalEvent || evt;\n\t\tvar canvas = evt.target || evt.srcElement;\n\t\tvar boundingRect = canvas.getBoundingClientRect();\n\n\t\tvar touches = e.touches;\n\t\tif (touches && touches.length > 0) {\n\t\t\tmouseX = touches[0].clientX;\n\t\t\tmouseY = touches[0].clientY;\n\n\t\t} else {\n\t\t\tmouseX = e.clientX;\n\t\t\tmouseY = e.clientY;\n\t\t}\n\n\t\t// Scale mouse coordinates into canvas coordinates\n\t\t// by following the pattern laid out by 'jerryj' in the comments of\n\t\t// https://www.html5canvastutorials.com/advanced/html5-canvas-mouse-coordinates/\n\t\tvar paddingLeft = parseFloat(helpers$1.getStyle(canvas, 'padding-left'));\n\t\tvar paddingTop = parseFloat(helpers$1.getStyle(canvas, 'padding-top'));\n\t\tvar paddingRight = parseFloat(helpers$1.getStyle(canvas, 'padding-right'));\n\t\tvar paddingBottom = parseFloat(helpers$1.getStyle(canvas, 'padding-bottom'));\n\t\tvar width = boundingRect.right - boundingRect.left - paddingLeft - paddingRight;\n\t\tvar height = boundingRect.bottom - boundingRect.top - paddingTop - paddingBottom;\n\n\t\t// We divide by the current device pixel ratio, because the canvas is scaled up by that amount in each direction. However\n\t\t// the backend model is in unscaled coordinates. Since we are going to deal with our model coordinates, we go back here\n\t\tmouseX = Math.round((mouseX - boundingRect.left - paddingLeft) / (width) * canvas.width / chart.currentDevicePixelRatio);\n\t\tmouseY = Math.round((mouseY - boundingRect.top - paddingTop) / (height) * canvas.height / chart.currentDevicePixelRatio);\n\n\t\treturn {\n\t\t\tx: mouseX,\n\t\t\ty: mouseY\n\t\t};\n\n\t};\n\n\t// Private helper function to convert max-width/max-height values that may be percentages into a number\n\tfunction parseMaxStyle(styleValue, node, parentProperty) {\n\t\tvar valueInPixels;\n\t\tif (typeof styleValue === 'string') {\n\t\t\tvalueInPixels = parseInt(styleValue, 10);\n\n\t\t\tif (styleValue.indexOf('%') !== -1) {\n\t\t\t\t// percentage * size in dimension\n\t\t\t\tvalueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n\t\t\t}\n\t\t} else {\n\t\t\tvalueInPixels = styleValue;\n\t\t}\n\n\t\treturn valueInPixels;\n\t}\n\n\t/**\n\t * Returns if the given value contains an effective constraint.\n\t * @private\n\t */\n\tfunction isConstrainedValue(value) {\n\t\treturn value !== undefined && value !== null && value !== 'none';\n\t}\n\n\t/**\n\t * Returns the max width or height of the given DOM node in a cross-browser compatible fashion\n\t * @param {HTMLElement} domNode - the node to check the constraint on\n\t * @param {string} maxStyle - the style that defines the maximum for the direction we are using ('max-width' / 'max-height')\n\t * @param {string} percentageProperty - property of parent to use when calculating width as a percentage\n\t * @see {@link https://www.nathanaeljones.com/blog/2013/reading-max-width-cross-browser}\n\t */\n\tfunction getConstraintDimension(domNode, maxStyle, percentageProperty) {\n\t\tvar view = document.defaultView;\n\t\tvar parentNode = helpers$1._getParentNode(domNode);\n\t\tvar constrainedNode = view.getComputedStyle(domNode)[maxStyle];\n\t\tvar constrainedContainer = view.getComputedStyle(parentNode)[maxStyle];\n\t\tvar hasCNode = isConstrainedValue(constrainedNode);\n\t\tvar hasCContainer = isConstrainedValue(constrainedContainer);\n\t\tvar infinity = Number.POSITIVE_INFINITY;\n\n\t\tif (hasCNode || hasCContainer) {\n\t\t\treturn Math.min(\n\t\t\t\thasCNode ? parseMaxStyle(constrainedNode, domNode, percentageProperty) : infinity,\n\t\t\t\thasCContainer ? parseMaxStyle(constrainedContainer, parentNode, percentageProperty) : infinity);\n\t\t}\n\n\t\treturn 'none';\n\t}\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintWidth = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-width', 'clientWidth');\n\t};\n\t// returns Number or undefined if no constraint\n\thelpers$1.getConstraintHeight = function(domNode) {\n\t\treturn getConstraintDimension(domNode, 'max-height', 'clientHeight');\n\t};\n\t/**\n\t * @private\n \t */\n\thelpers$1._calculatePadding = function(container, padding, parentDimension) {\n\t\tpadding = helpers$1.getStyle(container, padding);\n\n\t\treturn padding.indexOf('%') > -1 ? parentDimension * parseInt(padding, 10) / 100 : parseInt(padding, 10);\n\t};\n\t/**\n\t * @private\n\t */\n\thelpers$1._getParentNode = function(domNode) {\n\t\tvar parent = domNode.parentNode;\n\t\tif (parent && parent.toString() === '[object ShadowRoot]') {\n\t\t\tparent = parent.host;\n\t\t}\n\t\treturn parent;\n\t};\n\thelpers$1.getMaximumWidth = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientWidth;\n\t\t}\n\n\t\tvar clientWidth = container.clientWidth;\n\t\tvar paddingLeft = helpers$1._calculatePadding(container, 'padding-left', clientWidth);\n\t\tvar paddingRight = helpers$1._calculatePadding(container, 'padding-right', clientWidth);\n\n\t\tvar w = clientWidth - paddingLeft - paddingRight;\n\t\tvar cw = helpers$1.getConstraintWidth(domNode);\n\t\treturn isNaN(cw) ? w : Math.min(w, cw);\n\t};\n\thelpers$1.getMaximumHeight = function(domNode) {\n\t\tvar container = helpers$1._getParentNode(domNode);\n\t\tif (!container) {\n\t\t\treturn domNode.clientHeight;\n\t\t}\n\n\t\tvar clientHeight = container.clientHeight;\n\t\tvar paddingTop = helpers$1._calculatePadding(container, 'padding-top', clientHeight);\n\t\tvar paddingBottom = helpers$1._calculatePadding(container, 'padding-bottom', clientHeight);\n\n\t\tvar h = clientHeight - paddingTop - paddingBottom;\n\t\tvar ch = helpers$1.getConstraintHeight(domNode);\n\t\treturn isNaN(ch) ? h : Math.min(h, ch);\n\t};\n\thelpers$1.getStyle = function(el, property) {\n\t\treturn el.currentStyle ?\n\t\t\tel.currentStyle[property] :\n\t\t\tdocument.defaultView.getComputedStyle(el, null).getPropertyValue(property);\n\t};\n\thelpers$1.retinaScale = function(chart, forceRatio) {\n\t\tvar pixelRatio = chart.currentDevicePixelRatio = forceRatio || (typeof window !== 'undefined' && window.devicePixelRatio) || 1;\n\t\tif (pixelRatio === 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar canvas = chart.canvas;\n\t\tvar height = chart.height;\n\t\tvar width = chart.width;\n\n\t\tcanvas.height = height * pixelRatio;\n\t\tcanvas.width = width * pixelRatio;\n\t\tchart.ctx.scale(pixelRatio, pixelRatio);\n\n\t\t// If no style has been set on the canvas, the render size is used as display size,\n\t\t// making the chart visually bigger, so let's enforce it to the \"correct\" values.\n\t\t// See https://github.com/chartjs/Chart.js/issues/3575\n\t\tif (!canvas.style.height && !canvas.style.width) {\n\t\t\tcanvas.style.height = height + 'px';\n\t\t\tcanvas.style.width = width + 'px';\n\t\t}\n\t};\n\t// -- Canvas methods\n\thelpers$1.fontString = function(pixelSize, fontStyle, fontFamily) {\n\t\treturn fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n\t};\n\thelpers$1.longestText = function(ctx, font, arrayOfThings, cache) {\n\t\tcache = cache || {};\n\t\tvar data = cache.data = cache.data || {};\n\t\tvar gc = cache.garbageCollect = cache.garbageCollect || [];\n\n\t\tif (cache.font !== font) {\n\t\t\tdata = cache.data = {};\n\t\t\tgc = cache.garbageCollect = [];\n\t\t\tcache.font = font;\n\t\t}\n\n\t\tctx.font = font;\n\t\tvar longest = 0;\n\t\tvar ilen = arrayOfThings.length;\n\t\tvar i, j, jlen, thing, nestedThing;\n\t\tfor (i = 0; i < ilen; i++) {\n\t\t\tthing = arrayOfThings[i];\n\n\t\t\t// Undefined strings and arrays should not be measured\n\t\t\tif (thing !== undefined && thing !== null && helpers$1.isArray(thing) !== true) {\n\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, thing);\n\t\t\t} else if (helpers$1.isArray(thing)) {\n\t\t\t\t// if it is an array lets measure each element\n\t\t\t\t// to do maybe simplify this function a bit so we can do this more recursively?\n\t\t\t\tfor (j = 0, jlen = thing.length; j < jlen; j++) {\n\t\t\t\t\tnestedThing = thing[j];\n\t\t\t\t\t// Undefined strings and arrays should not be measured\n\t\t\t\t\tif (nestedThing !== undefined && nestedThing !== null && !helpers$1.isArray(nestedThing)) {\n\t\t\t\t\t\tlongest = helpers$1.measureText(ctx, data, gc, longest, nestedThing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar gcLen = gc.length / 2;\n\t\tif (gcLen > arrayOfThings.length) {\n\t\t\tfor (i = 0; i < gcLen; i++) {\n\t\t\t\tdelete data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t\treturn longest;\n\t};\n\thelpers$1.measureText = function(ctx, data, gc, longest, string) {\n\t\tvar textWidth = data[string];\n\t\tif (!textWidth) {\n\t\t\ttextWidth = data[string] = ctx.measureText(string).width;\n\t\t\tgc.push(string);\n\t\t}\n\t\tif (textWidth > longest) {\n\t\t\tlongest = textWidth;\n\t\t}\n\t\treturn longest;\n\t};\n\n\t/**\n\t * @deprecated\n\t */\n\thelpers$1.numberOfLabelLines = function(arrayOfThings) {\n\t\tvar numberOfLines = 1;\n\t\thelpers$1.each(arrayOfThings, function(thing) {\n\t\t\tif (helpers$1.isArray(thing)) {\n\t\t\t\tif (thing.length > numberOfLines) {\n\t\t\t\t\tnumberOfLines = thing.length;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn numberOfLines;\n\t};\n\n\thelpers$1.color = !chartjsColor ?\n\t\tfunction(value) {\n\t\t\tconsole.error('Color.js not found!');\n\t\t\treturn value;\n\t\t} :\n\t\tfunction(value) {\n\t\t\t/* global CanvasGradient */\n\t\t\tif (value instanceof CanvasGradient) {\n\t\t\t\tvalue = core_defaults.global.defaultColor;\n\t\t\t}\n\n\t\t\treturn chartjsColor(value);\n\t\t};\n\n\thelpers$1.getHoverColor = function(colorValue) {\n\t\t/* global CanvasPattern */\n\t\treturn (colorValue instanceof CanvasPattern || colorValue instanceof CanvasGradient) ?\n\t\t\tcolorValue :\n\t\t\thelpers$1.color(colorValue).saturate(0.5).darken(0.1).rgbString();\n\t};\n};\n\nfunction abstract() {\n\tthrow new Error(\n\t\t'This method is not implemented: either no adapter can ' +\n\t\t'be found or an incomplete integration was provided.'\n\t);\n}\n\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */\n\n/**\n * Currently supported unit string values.\n * @typedef {('millisecond'|'second'|'minute'|'hour'|'day'|'week'|'month'|'quarter'|'year')}\n * @memberof Chart._adapters._date\n * @name Unit\n */\n\n/**\n * @class\n */\nfunction DateAdapter(options) {\n\tthis.options = options || {};\n}\n\nhelpers$1.extend(DateAdapter.prototype, /** @lends DateAdapter */ {\n\t/**\n\t * Returns a map of time formats for the supported formatting units defined\n\t * in Unit as well as 'datetime' representing a detailed date/time string.\n\t * @returns {{string: string}}\n\t */\n\tformats: abstract,\n\n\t/**\n\t * Parses the given `value` and return the associated timestamp.\n\t * @param {any} value - the value to parse (usually comes from the data)\n\t * @param {string} [format] - the expected data format\n\t * @returns {(number|null)}\n\t * @function\n\t */\n\tparse: abstract,\n\n\t/**\n\t * Returns the formatted date in the specified `format` for a given `timestamp`.\n\t * @param {number} timestamp - the timestamp to format\n\t * @param {string} format - the date/time token\n\t * @return {string}\n\t * @function\n\t */\n\tformat: abstract,\n\n\t/**\n\t * Adds the specified `amount` of `unit` to the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {number} amount - the amount to add\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tadd: abstract,\n\n\t/**\n\t * Returns the number of `unit` between the given timestamps.\n\t * @param {number} max - the input timestamp (reference)\n\t * @param {number} min - the timestamp to substract\n\t * @param {Unit} unit - the unit as string\n\t * @return {number}\n\t * @function\n\t */\n\tdiff: abstract,\n\n\t/**\n\t * Returns start of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @param {number} [weekday] - the ISO day of the week with 1 being Monday\n\t * and 7 being Sunday (only needed if param *unit* is `isoWeek`).\n\t * @function\n\t */\n\tstartOf: abstract,\n\n\t/**\n\t * Returns end of `unit` for the given `timestamp`.\n\t * @param {number} timestamp - the input timestamp\n\t * @param {Unit} unit - the unit as string\n\t * @function\n\t */\n\tendOf: abstract,\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility for scale.getValueForPixel(),\n\t * this method should be overridden only by the moment adapter.\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(value) {\n\t\treturn value;\n\t}\n});\n\nDateAdapter.override = function(members) {\n\thelpers$1.extend(DateAdapter.prototype, members);\n};\n\nvar _date = DateAdapter;\n\nvar core_adapters = {\n\t_date: _date\n};\n\n/**\n * Namespace to hold static tick generation functions\n * @namespace Chart.Ticks\n */\nvar core_ticks = {\n\t/**\n\t * Namespace to hold formatters for different types of ticks\n\t * @namespace Chart.Ticks.formatters\n\t */\n\tformatters: {\n\t\t/**\n\t\t * Formatter for value labels\n\t\t * @method Chart.Ticks.formatters.values\n\t\t * @param value the value to display\n\t\t * @return {string|string[]} the label to display\n\t\t */\n\t\tvalues: function(value) {\n\t\t\treturn helpers$1.isArray(value) ? value : '' + value;\n\t\t},\n\n\t\t/**\n\t\t * Formatter for linear numeric ticks\n\t\t * @method Chart.Ticks.formatters.linear\n\t\t * @param tickValue {number} the value to be formatted\n\t\t * @param index {number} the position of the tickValue parameter in the ticks array\n\t\t * @param ticks {number[]} the list of ticks being converted\n\t\t * @return {string} string representation of the tickValue parameter\n\t\t */\n\t\tlinear: function(tickValue, index, ticks) {\n\t\t\t// If we have lots of ticks, don't use the ones\n\t\t\tvar delta = ticks.length > 3 ? ticks[2] - ticks[1] : ticks[1] - ticks[0];\n\n\t\t\t// If we have a number like 2.5 as the delta, figure out how many decimal places we need\n\t\t\tif (Math.abs(delta) > 1) {\n\t\t\t\tif (tickValue !== Math.floor(tickValue)) {\n\t\t\t\t\t// not an integer\n\t\t\t\t\tdelta = tickValue - Math.floor(tickValue);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar logDelta = helpers$1.log10(Math.abs(delta));\n\t\t\tvar tickString = '';\n\n\t\t\tif (tickValue !== 0) {\n\t\t\t\tvar maxTick = Math.max(Math.abs(ticks[0]), Math.abs(ticks[ticks.length - 1]));\n\t\t\t\tif (maxTick < 1e-4) { // all ticks are small numbers; use scientific notation\n\t\t\t\t\tvar logTick = helpers$1.log10(Math.abs(tickValue));\n\t\t\t\t\tvar numExponential = Math.floor(logTick) - Math.floor(logDelta);\n\t\t\t\t\tnumExponential = Math.max(Math.min(numExponential, 20), 0);\n\t\t\t\t\ttickString = tickValue.toExponential(numExponential);\n\t\t\t\t} else {\n\t\t\t\t\tvar numDecimal = -1 * Math.floor(logDelta);\n\t\t\t\t\tnumDecimal = Math.max(Math.min(numDecimal, 20), 0); // toFixed has a max of 20 decimal places\n\t\t\t\t\ttickString = tickValue.toFixed(numDecimal);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttickString = '0'; // never show decimal places for 0\n\t\t\t}\n\n\t\t\treturn tickString;\n\t\t},\n\n\t\tlogarithmic: function(tickValue, index, ticks) {\n\t\t\tvar remain = tickValue / (Math.pow(10, Math.floor(helpers$1.log10(tickValue))));\n\n\t\t\tif (tickValue === 0) {\n\t\t\t\treturn '0';\n\t\t\t} else if (remain === 1 || remain === 2 || remain === 5 || index === 0 || index === ticks.length - 1) {\n\t\t\t\treturn tickValue.toExponential();\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t}\n};\n\nvar isArray = helpers$1.isArray;\nvar isNullOrUndef = helpers$1.isNullOrUndef;\nvar valueOrDefault$a = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault = helpers$1.valueAtIndexOrDefault;\n\ncore_defaults._set('scale', {\n\tdisplay: true,\n\tposition: 'left',\n\toffset: false,\n\n\t// grid line settings\n\tgridLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tdrawBorder: true,\n\t\tdrawOnChartArea: true,\n\t\tdrawTicks: true,\n\t\ttickMarkLength: 10,\n\t\tzeroLineWidth: 1,\n\t\tzeroLineColor: 'rgba(0,0,0,0.25)',\n\t\tzeroLineBorderDash: [],\n\t\tzeroLineBorderDashOffset: 0.0,\n\t\toffsetGridLines: false,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\t// scale label\n\tscaleLabel: {\n\t\t// display property\n\t\tdisplay: false,\n\n\t\t// actual label\n\t\tlabelString: '',\n\n\t\t// top/bottom padding\n\t\tpadding: {\n\t\t\ttop: 4,\n\t\t\tbottom: 4\n\t\t}\n\t},\n\n\t// label settings\n\tticks: {\n\t\tbeginAtZero: false,\n\t\tminRotation: 0,\n\t\tmaxRotation: 50,\n\t\tmirror: false,\n\t\tpadding: 0,\n\t\treverse: false,\n\t\tdisplay: true,\n\t\tautoSkip: true,\n\t\tautoSkipPadding: 0,\n\t\tlabelOffset: 0,\n\t\t// We pass through arrays to be rendered as multiline labels, we convert Others to strings here.\n\t\tcallback: core_ticks.formatters.values,\n\t\tminor: {},\n\t\tmajor: {}\n\t}\n});\n\n/** Returns a new array containing numItems from arr */\nfunction sample(arr, numItems) {\n\tvar result = [];\n\tvar increment = arr.length / numItems;\n\tvar i = 0;\n\tvar len = arr.length;\n\n\tfor (; i < len; i += increment) {\n\t\tresult.push(arr[Math.floor(i)]);\n\t}\n\treturn result;\n}\n\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n\tvar length = scale.getTicks().length;\n\tvar validIndex = Math.min(index, length - 1);\n\tvar lineValue = scale.getPixelForTick(validIndex);\n\tvar start = scale._startPixel;\n\tvar end = scale._endPixel;\n\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\tvar offset;\n\n\tif (offsetGridLines) {\n\t\tif (length === 1) {\n\t\t\toffset = Math.max(lineValue - start, end - lineValue);\n\t\t} else if (index === 0) {\n\t\t\toffset = (scale.getPixelForTick(1) - lineValue) / 2;\n\t\t} else {\n\t\t\toffset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n\t\t}\n\t\tlineValue += validIndex < index ? offset : -offset;\n\n\t\t// Return undefined if the pixel is out of the range\n\t\tif (lineValue < start - epsilon || lineValue > end + epsilon) {\n\t\t\treturn;\n\t\t}\n\t}\n\treturn lineValue;\n}\n\nfunction garbageCollect(caches, length) {\n\thelpers$1.each(caches, function(cache) {\n\t\tvar gc = cache.gc;\n\t\tvar gcLen = gc.length / 2;\n\t\tvar i;\n\t\tif (gcLen > length) {\n\t\t\tfor (i = 0; i < gcLen; ++i) {\n\t\t\t\tdelete cache.data[gc[i]];\n\t\t\t}\n\t\t\tgc.splice(0, gcLen);\n\t\t}\n\t});\n}\n\n/**\n * Returns {width, height, offset} objects for the first, last, widest, highest tick\n * labels where offset indicates the anchor point offset from the top in pixels.\n */\nfunction computeLabelSizes(ctx, tickFonts, ticks, caches) {\n\tvar length = ticks.length;\n\tvar widths = [];\n\tvar heights = [];\n\tvar offsets = [];\n\tvar i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel, widest, highest;\n\n\tfor (i = 0; i < length; ++i) {\n\t\tlabel = ticks[i].label;\n\t\ttickFont = ticks[i].major ? tickFonts.major : tickFonts.minor;\n\t\tctx.font = fontString = tickFont.string;\n\t\tcache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n\t\tlineHeight = tickFont.lineHeight;\n\t\twidth = height = 0;\n\t\t// Undefined labels and arrays should not be measured\n\t\tif (!isNullOrUndef(label) && !isArray(label)) {\n\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, label);\n\t\t\theight = lineHeight;\n\t\t} else if (isArray(label)) {\n\t\t\t// if it is an array let's measure each element\n\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\tnestedLabel = label[j];\n\t\t\t\t// Undefined labels and arrays should not be measured\n\t\t\t\tif (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n\t\t\t\t\twidth = helpers$1.measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n\t\t\t\t\theight += lineHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\twidths.push(width);\n\t\theights.push(height);\n\t\toffsets.push(lineHeight / 2);\n\t}\n\tgarbageCollect(caches, length);\n\n\twidest = widths.indexOf(Math.max.apply(null, widths));\n\thighest = heights.indexOf(Math.max.apply(null, heights));\n\n\tfunction valueAt(idx) {\n\t\treturn {\n\t\t\twidth: widths[idx] || 0,\n\t\t\theight: heights[idx] || 0,\n\t\t\toffset: offsets[idx] || 0\n\t\t};\n\t}\n\n\treturn {\n\t\tfirst: valueAt(0),\n\t\tlast: valueAt(length - 1),\n\t\twidest: valueAt(widest),\n\t\thighest: valueAt(highest)\n\t};\n}\n\nfunction getTickMarkLength(options) {\n\treturn options.drawTicks ? options.tickMarkLength : 0;\n}\n\nfunction getScaleLabelHeight(options) {\n\tvar font, padding;\n\n\tif (!options.display) {\n\t\treturn 0;\n\t}\n\n\tfont = helpers$1.options._parseFont(options);\n\tpadding = helpers$1.options.toPadding(options.padding);\n\n\treturn font.lineHeight + padding.height;\n}\n\nfunction parseFontOptions(options, nestedOpts) {\n\treturn helpers$1.extend(helpers$1.options._parseFont({\n\t\tfontFamily: valueOrDefault$a(nestedOpts.fontFamily, options.fontFamily),\n\t\tfontSize: valueOrDefault$a(nestedOpts.fontSize, options.fontSize),\n\t\tfontStyle: valueOrDefault$a(nestedOpts.fontStyle, options.fontStyle),\n\t\tlineHeight: valueOrDefault$a(nestedOpts.lineHeight, options.lineHeight)\n\t}), {\n\t\tcolor: helpers$1.options.resolve([nestedOpts.fontColor, options.fontColor, core_defaults.global.defaultFontColor])\n\t});\n}\n\nfunction parseTickFontOptions(options) {\n\tvar minor = parseFontOptions(options, options.minor);\n\tvar major = options.major.enabled ? parseFontOptions(options, options.major) : minor;\n\n\treturn {minor: minor, major: major};\n}\n\nfunction nonSkipped(ticksToFilter) {\n\tvar filtered = [];\n\tvar item, index, len;\n\tfor (index = 0, len = ticksToFilter.length; index < len; ++index) {\n\t\titem = ticksToFilter[index];\n\t\tif (typeof item._index !== 'undefined') {\n\t\t\tfiltered.push(item);\n\t\t}\n\t}\n\treturn filtered;\n}\n\nfunction getEvenSpacing(arr) {\n\tvar len = arr.length;\n\tvar i, diff;\n\n\tif (len < 2) {\n\t\treturn false;\n\t}\n\n\tfor (diff = arr[0], i = 1; i < len; ++i) {\n\t\tif (arr[i] - arr[i - 1] !== diff) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn diff;\n}\n\nfunction calculateSpacing(majorIndices, ticks, axisLength, ticksLimit) {\n\tvar evenMajorSpacing = getEvenSpacing(majorIndices);\n\tvar spacing = (ticks.length - 1) / ticksLimit;\n\tvar factors, factor, i, ilen;\n\n\t// If the major ticks are evenly spaced apart, place the minor ticks\n\t// so that they divide the major ticks into even chunks\n\tif (!evenMajorSpacing) {\n\t\treturn Math.max(spacing, 1);\n\t}\n\n\tfactors = helpers$1.math._factorize(evenMajorSpacing);\n\tfor (i = 0, ilen = factors.length - 1; i < ilen; i++) {\n\t\tfactor = factors[i];\n\t\tif (factor > spacing) {\n\t\t\treturn factor;\n\t\t}\n\t}\n\treturn Math.max(spacing, 1);\n}\n\nfunction getMajorIndices(ticks) {\n\tvar result = [];\n\tvar i, ilen;\n\tfor (i = 0, ilen = ticks.length; i < ilen; i++) {\n\t\tif (ticks[i].major) {\n\t\t\tresult.push(i);\n\t\t}\n\t}\n\treturn result;\n}\n\nfunction skipMajors(ticks, majorIndices, spacing) {\n\tvar count = 0;\n\tvar next = majorIndices[0];\n\tvar i, tick;\n\n\tspacing = Math.ceil(spacing);\n\tfor (i = 0; i < ticks.length; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = majorIndices[count * spacing];\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nfunction skip(ticks, spacing, majorStart, majorEnd) {\n\tvar start = valueOrDefault$a(majorStart, 0);\n\tvar end = Math.min(valueOrDefault$a(majorEnd, ticks.length), ticks.length);\n\tvar count = 0;\n\tvar length, i, tick, next;\n\n\tspacing = Math.ceil(spacing);\n\tif (majorEnd) {\n\t\tlength = majorEnd - majorStart;\n\t\tspacing = length / Math.floor(length / spacing);\n\t}\n\n\tnext = start;\n\n\twhile (next < 0) {\n\t\tcount++;\n\t\tnext = Math.round(start + count * spacing);\n\t}\n\n\tfor (i = Math.max(start, 0); i < end; i++) {\n\t\ttick = ticks[i];\n\t\tif (i === next) {\n\t\t\ttick._index = i;\n\t\t\tcount++;\n\t\t\tnext = Math.round(start + count * spacing);\n\t\t} else {\n\t\t\tdelete tick.label;\n\t\t}\n\t}\n}\n\nvar Scale = core_element.extend({\n\n\tzeroLineIndex: 0,\n\n\t/**\n\t * Get the padding needed for the scale\n\t * @method getPadding\n\t * @private\n\t * @returns {Padding} the necessary padding\n\t */\n\tgetPadding: function() {\n\t\tvar me = this;\n\t\treturn {\n\t\t\tleft: me.paddingLeft || 0,\n\t\t\ttop: me.paddingTop || 0,\n\t\t\tright: me.paddingRight || 0,\n\t\t\tbottom: me.paddingBottom || 0\n\t\t};\n\t},\n\n\t/**\n\t * Returns the scale tick objects ({label, major})\n\t * @since 2.7\n\t */\n\tgetTicks: function() {\n\t\treturn this._ticks;\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getLabels: function() {\n\t\tvar data = this.chart.data;\n\t\treturn this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n\t},\n\n\t// These methods are ordered by lifecyle. Utilities then follow.\n\t// Any function defined here is inherited by all scale types.\n\t// Any function can be extended by the scale type\n\n\t/**\n\t * Provided for backward compatibility, not available anymore\n\t * @function Chart.Scale.mergeTicksOptions\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t */\n\tmergeTicksOptions: function() {\n\t\t// noop\n\t},\n\n\tbeforeUpdate: function() {\n\t\thelpers$1.callback(this.options.beforeUpdate, [this]);\n\t},\n\n\t/**\n\t * @param {number} maxWidth - the max width in pixels\n\t * @param {number} maxHeight - the max height in pixels\n\t * @param {object} margins - the space between the edge of the other scales and edge of the chart\n\t * This space comes from two sources:\n\t * - padding - space that's required to show the labels at the edges of the scale\n\t * - thickness of scales or legends in another orientation\n\t */\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar sampleSize = tickOpts.sampleSize;\n\t\tvar i, ilen, labels, ticks, samplingEnabled;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = helpers$1.extend({\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\ttop: 0,\n\t\t\tbottom: 0\n\t\t}, margins);\n\n\t\tme._ticks = null;\n\t\tme.ticks = null;\n\t\tme._labelSizes = null;\n\t\tme._maxLabelLines = 0;\n\t\tme.longestLabelWidth = 0;\n\t\tme.longestTextCache = me.longestTextCache || {};\n\t\tme._gridLineItems = null;\n\t\tme._labelItems = null;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\n\t\t// Data min/max\n\t\tme.beforeDataLimits();\n\t\tme.determineDataLimits();\n\t\tme.afterDataLimits();\n\n\t\t// Ticks - `this.ticks` is now DEPRECATED!\n\t\t// Internal ticks are now stored as objects in the PRIVATE `this._ticks` member\n\t\t// and must not be accessed directly from outside this class. `this.ticks` being\n\t\t// around for long time and not marked as private, we can't change its structure\n\t\t// without unexpected breaking changes. If you need to access the scale ticks,\n\t\t// use scale.getTicks() instead.\n\n\t\tme.beforeBuildTicks();\n\n\t\t// New implementations should return an array of objects but for BACKWARD COMPAT,\n\t\t// we still support no return (`this.ticks` internally set by calling this method).\n\t\tticks = me.buildTicks() || [];\n\n\t\t// Allow modification of ticks in callback.\n\t\tticks = me.afterBuildTicks(ticks) || ticks;\n\n\t\t// Ensure ticks contains ticks in new tick format\n\t\tif ((!ticks || !ticks.length) && me.ticks) {\n\t\t\tticks = [];\n\t\t\tfor (i = 0, ilen = me.ticks.length; i < ilen; ++i) {\n\t\t\t\tticks.push({\n\t\t\t\t\tvalue: me.ticks[i],\n\t\t\t\t\tmajor: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tme._ticks = ticks;\n\n\t\t// Compute tick rotation and fit using a sampled subset of labels\n\t\t// We generally don't need to compute the size of every single label for determining scale size\n\t\tsamplingEnabled = sampleSize < ticks.length;\n\t\tlabels = me._convertTicksToLabels(samplingEnabled ? sample(ticks, sampleSize) : ticks);\n\n\t\t// _configure is called twice, once here, once from core.controller.updateLayout.\n\t\t// Here we haven't been positioned yet, but dimensions are correct.\n\t\t// Variables set in _configure are needed for calculateTickRotation, and\n\t\t// it's ok that coordinates are not correct there, only dimensions matter.\n\t\tme._configure();\n\n\t\t// Tick Rotation\n\t\tme.beforeCalculateTickRotation();\n\t\tme.calculateTickRotation();\n\t\tme.afterCalculateTickRotation();\n\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\n\t\t// Auto-skip\n\t\tme._ticksToDraw = tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto') ? me._autoSkip(ticks) : ticks;\n\n\t\tif (samplingEnabled) {\n\t\t\t// Generate labels using all non-skipped ticks\n\t\t\tlabels = me._convertTicksToLabels(me._ticksToDraw);\n\t\t}\n\n\t\tme.ticks = labels; // BACKWARD COMPATIBILITY\n\n\t\t// IMPORTANT: after this point, we consider that `this.ticks` will NEVER change!\n\n\t\tme.afterUpdate();\n\n\t\t// TODO(v3): remove minSize as a public property and return value from all layout boxes. It is unused\n\t\t// make maxWidth and maxHeight private\n\t\treturn me.minSize;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar reversePixels = me.options.ticks.reverse;\n\t\tvar startPixel, endPixel;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tstartPixel = me.left;\n\t\t\tendPixel = me.right;\n\t\t} else {\n\t\t\tstartPixel = me.top;\n\t\t\tendPixel = me.bottom;\n\t\t\t// by default vertical scales are from bottom to top, so pixels are reversed\n\t\t\treversePixels = !reversePixels;\n\t\t}\n\t\tme._startPixel = startPixel;\n\t\tme._endPixel = endPixel;\n\t\tme._reversePixels = reversePixels;\n\t\tme._length = endPixel - startPixel;\n\t},\n\n\tafterUpdate: function() {\n\t\thelpers$1.callback(this.options.afterUpdate, [this]);\n\t},\n\n\t//\n\n\tbeforeSetDimensions: function() {\n\t\thelpers$1.callback(this.options.beforeSetDimensions, [this]);\n\t},\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\t},\n\tafterSetDimensions: function() {\n\t\thelpers$1.callback(this.options.afterSetDimensions, [this]);\n\t},\n\n\t// Data limits\n\tbeforeDataLimits: function() {\n\t\thelpers$1.callback(this.options.beforeDataLimits, [this]);\n\t},\n\tdetermineDataLimits: helpers$1.noop,\n\tafterDataLimits: function() {\n\t\thelpers$1.callback(this.options.afterDataLimits, [this]);\n\t},\n\n\t//\n\tbeforeBuildTicks: function() {\n\t\thelpers$1.callback(this.options.beforeBuildTicks, [this]);\n\t},\n\tbuildTicks: helpers$1.noop,\n\tafterBuildTicks: function(ticks) {\n\t\tvar me = this;\n\t\t// ticks is empty for old axis implementations here\n\t\tif (isArray(ticks) && ticks.length) {\n\t\t\treturn helpers$1.callback(me.options.afterBuildTicks, [me, ticks]);\n\t\t}\n\t\t// Support old implementations (that modified `this.ticks` directly in buildTicks)\n\t\tme.ticks = helpers$1.callback(me.options.afterBuildTicks, [me, me.ticks]) || me.ticks;\n\t\treturn ticks;\n\t},\n\n\tbeforeTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.beforeTickToLabelConversion, [this]);\n\t},\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\t// Convert ticks to strings\n\t\tvar tickOpts = me.options.ticks;\n\t\tme.ticks = me.ticks.map(tickOpts.userCallback || tickOpts.callback, this);\n\t},\n\tafterTickToLabelConversion: function() {\n\t\thelpers$1.callback(this.options.afterTickToLabelConversion, [this]);\n\t},\n\n\t//\n\n\tbeforeCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.beforeCalculateTickRotation, [this]);\n\t},\n\tcalculateTickRotation: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar numTicks = me.getTicks().length;\n\t\tvar minRotation = tickOpts.minRotation || 0;\n\t\tvar maxRotation = tickOpts.maxRotation;\n\t\tvar labelRotation = minRotation;\n\t\tvar labelSizes, maxLabelWidth, maxLabelHeight, maxWidth, tickWidth, maxHeight, maxLabelDiagonal;\n\n\t\tif (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n\t\t\tme.labelRotation = minRotation;\n\t\t\treturn;\n\t\t}\n\n\t\tlabelSizes = me._getLabelSizes();\n\t\tmaxLabelWidth = labelSizes.widest.width;\n\t\tmaxLabelHeight = labelSizes.highest.height - labelSizes.highest.offset;\n\n\t\t// Estimate the width of each grid based on the canvas width, the maximum\n\t\t// label width and the number of tick intervals\n\t\tmaxWidth = Math.min(me.maxWidth, me.chart.width - maxLabelWidth);\n\t\ttickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n\n\t\t// Allow 3 pixels x2 padding either side for label readability\n\t\tif (maxLabelWidth + 6 > tickWidth) {\n\t\t\ttickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n\t\t\tmaxHeight = me.maxHeight - getTickMarkLength(options.gridLines)\n\t\t\t\t- tickOpts.padding - getScaleLabelHeight(options.scaleLabel);\n\t\t\tmaxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n\t\t\tlabelRotation = helpers$1.toDegrees(Math.min(\n\t\t\t\tMath.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)),\n\t\t\t\tMath.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)\n\t\t\t));\n\t\t\tlabelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n\t\t}\n\n\t\tme.labelRotation = labelRotation;\n\t},\n\tafterCalculateTickRotation: function() {\n\t\thelpers$1.callback(this.options.afterCalculateTickRotation, [this]);\n\t},\n\n\t//\n\n\tbeforeFit: function() {\n\t\thelpers$1.callback(this.options.beforeFit, [this]);\n\t},\n\tfit: function() {\n\t\tvar me = this;\n\t\t// Reset\n\t\tvar minSize = me.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\n\t\tvar chart = me.chart;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\t\tvar scaleLabelOpts = opts.scaleLabel;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar display = me._isVisible();\n\t\tvar isBottom = opts.position === 'bottom';\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\t// Width\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth;\n\t\t} else if (display) {\n\t\t\tminSize.width = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// height\n\t\tif (!isHorizontal) {\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t} else if (display) {\n\t\t\tminSize.height = getTickMarkLength(gridLineOpts) + getScaleLabelHeight(scaleLabelOpts);\n\t\t}\n\n\t\t// Don't bother fitting the ticks if we are not showing the labels\n\t\tif (tickOpts.display && display) {\n\t\t\tvar tickFonts = parseTickFontOptions(tickOpts);\n\t\t\tvar labelSizes = me._getLabelSizes();\n\t\t\tvar firstLabelSize = labelSizes.first;\n\t\t\tvar lastLabelSize = labelSizes.last;\n\t\t\tvar widestLabelSize = labelSizes.widest;\n\t\t\tvar highestLabelSize = labelSizes.highest;\n\t\t\tvar lineSpace = tickFonts.minor.lineHeight * 0.4;\n\t\t\tvar tickPadding = tickOpts.padding;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\t// A horizontal axis is more constrained by the height.\n\t\t\t\tvar isRotated = me.labelRotation !== 0;\n\t\t\t\tvar angleRadians = helpers$1.toRadians(me.labelRotation);\n\t\t\t\tvar cosRotation = Math.cos(angleRadians);\n\t\t\t\tvar sinRotation = Math.sin(angleRadians);\n\n\t\t\t\tvar labelHeight = sinRotation * widestLabelSize.width\n\t\t\t\t\t+ cosRotation * (highestLabelSize.height - (isRotated ? highestLabelSize.offset : 0))\n\t\t\t\t\t+ (isRotated ? 0 : lineSpace); // padding\n\n\t\t\t\tminSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n\n\t\t\t\tvar offsetLeft = me.getPixelForTick(0) - me.left;\n\t\t\t\tvar offsetRight = me.right - me.getPixelForTick(me.getTicks().length - 1);\n\t\t\t\tvar paddingLeft, paddingRight;\n\n\t\t\t\t// Ensure that our ticks are always inside the canvas. When rotated, ticks are right aligned\n\t\t\t\t// which means that the right padding is dominated by the font height\n\t\t\t\tif (isRotated) {\n\t\t\t\t\tpaddingLeft = isBottom ?\n\t\t\t\t\t\tcosRotation * firstLabelSize.width + sinRotation * firstLabelSize.offset :\n\t\t\t\t\t\tsinRotation * (firstLabelSize.height - firstLabelSize.offset);\n\t\t\t\t\tpaddingRight = isBottom ?\n\t\t\t\t\t\tsinRotation * (lastLabelSize.height - lastLabelSize.offset) :\n\t\t\t\t\t\tcosRotation * lastLabelSize.width + sinRotation * lastLabelSize.offset;\n\t\t\t\t} else {\n\t\t\t\t\tpaddingLeft = firstLabelSize.width / 2;\n\t\t\t\t\tpaddingRight = lastLabelSize.width / 2;\n\t\t\t\t}\n\n\t\t\t\t// Adjust padding taking into account changes in offsets\n\t\t\t\t// and add 3 px to move away from canvas edges\n\t\t\t\tme.paddingLeft = Math.max((paddingLeft - offsetLeft) * me.width / (me.width - offsetLeft), 0) + 3;\n\t\t\t\tme.paddingRight = Math.max((paddingRight - offsetRight) * me.width / (me.width - offsetRight), 0) + 3;\n\t\t\t} else {\n\t\t\t\t// A vertical axis is more constrained by the width. Labels are the\n\t\t\t\t// dominant factor here, so get that length first and account for padding\n\t\t\t\tvar labelWidth = tickOpts.mirror ? 0 :\n\t\t\t\t\t// use lineSpace for consistency with horizontal axis\n\t\t\t\t\t// tickPadding is not implemented for horizontal\n\t\t\t\t\twidestLabelSize.width + tickPadding + lineSpace;\n\n\t\t\t\tminSize.width = Math.min(me.maxWidth, minSize.width + labelWidth);\n\n\t\t\t\tme.paddingTop = firstLabelSize.height / 2;\n\t\t\t\tme.paddingBottom = lastLabelSize.height / 2;\n\t\t\t}\n\t\t}\n\n\t\tme.handleMargins();\n\n\t\tif (isHorizontal) {\n\t\t\tme.width = me._length = chart.width - me.margins.left - me.margins.right;\n\t\t\tme.height = minSize.height;\n\t\t} else {\n\t\t\tme.width = minSize.width;\n\t\t\tme.height = me._length = chart.height - me.margins.top - me.margins.bottom;\n\t\t}\n\t},\n\n\t/**\n\t * Handle margins and padding interactions\n\t * @private\n\t */\n\thandleMargins: function() {\n\t\tvar me = this;\n\t\tif (me.margins) {\n\t\t\tme.margins.left = Math.max(me.paddingLeft, me.margins.left);\n\t\t\tme.margins.top = Math.max(me.paddingTop, me.margins.top);\n\t\t\tme.margins.right = Math.max(me.paddingRight, me.margins.right);\n\t\t\tme.margins.bottom = Math.max(me.paddingBottom, me.margins.bottom);\n\t\t}\n\t},\n\n\tafterFit: function() {\n\t\thelpers$1.callback(this.options.afterFit, [this]);\n\t},\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\tisFullWidth: function() {\n\t\treturn this.options.fullWidth;\n\t},\n\n\t// Get the correct value. NaN bad inputs, If the value type is object get the x or y based on whether we are horizontal or not\n\tgetRightValue: function(rawValue) {\n\t\t// Null and undefined values first\n\t\tif (isNullOrUndef(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\t\t// isNaN(object) returns true, so make sure NaN is checking for a number; Discard Infinite values\n\t\tif ((typeof rawValue === 'number' || rawValue instanceof Number) && !isFinite(rawValue)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// If it is in fact an object, dive in one more level\n\t\tif (rawValue) {\n\t\t\tif (this.isHorizontal()) {\n\t\t\t\tif (rawValue.x !== undefined) {\n\t\t\t\t\treturn this.getRightValue(rawValue.x);\n\t\t\t\t}\n\t\t\t} else if (rawValue.y !== undefined) {\n\t\t\t\treturn this.getRightValue(rawValue.y);\n\t\t\t}\n\t\t}\n\n\t\t// Value is good, return it\n\t\treturn rawValue;\n\t},\n\n\t_convertTicksToLabels: function(ticks) {\n\t\tvar me = this;\n\t\tvar labels, i, ilen;\n\n\t\tme.ticks = ticks.map(function(tick) {\n\t\t\treturn tick.value;\n\t\t});\n\n\t\tme.beforeTickToLabelConversion();\n\n\t\t// New implementations should return the formatted tick labels but for BACKWARD\n\t\t// COMPAT, we still support no return (`this.ticks` internally changed by calling\n\t\t// this method and supposed to contain only string values).\n\t\tlabels = me.convertTicksToLabels(ticks) || me.ticks;\n\n\t\tme.afterTickToLabelConversion();\n\n\t\t// BACKWARD COMPAT: synchronize `_ticks` with labels (so potentially `this.ticks`)\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tticks[i].label = labels[i];\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSizes: function() {\n\t\tvar me = this;\n\t\tvar labelSizes = me._labelSizes;\n\n\t\tif (!labelSizes) {\n\t\t\tme._labelSizes = labelSizes = computeLabelSizes(me.ctx, parseTickFontOptions(me.options.ticks), me.getTicks(), me.longestTextCache);\n\t\t\tme.longestLabelWidth = labelSizes.widest.width;\n\t\t}\n\n\t\treturn labelSizes;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_parseValue: function(value) {\n\t\tvar start, end, min, max;\n\n\t\tif (isArray(value)) {\n\t\t\tstart = +this.getRightValue(value[0]);\n\t\t\tend = +this.getRightValue(value[1]);\n\t\t\tmin = Math.min(start, end);\n\t\t\tmax = Math.max(start, end);\n\t\t} else {\n\t\t\tvalue = +this.getRightValue(value);\n\t\t\tstart = undefined;\n\t\t\tend = value;\n\t\t\tmin = value;\n\t\t\tmax = value;\n\t\t}\n\n\t\treturn {\n\t\t\tmin: min,\n\t\t\tmax: max,\n\t\t\tstart: start,\n\t\t\tend: end\n\t\t};\n\t},\n\n\t/**\n\t* @private\n\t*/\n\t_getScaleLabel: function(rawValue) {\n\t\tvar v = this._parseValue(rawValue);\n\t\tif (v.start !== undefined) {\n\t\t\treturn '[' + v.start + ', ' + v.end + ']';\n\t\t}\n\n\t\treturn +this.getRightValue(rawValue);\n\t},\n\n\t/**\n\t * Used to get the value to display in the tooltip for the data at the given index\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetLabelForIndex: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the given data point. Value can either be an index or a numerical value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param value\n\t * @param index\n\t * @param datasetIndex\n\t */\n\tgetPixelForValue: helpers$1.noop,\n\n\t/**\n\t * Used to get the data value from a given pixel. This is the inverse of getPixelForValue\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t * @param pixel\n\t */\n\tgetValueForPixel: helpers$1.noop,\n\n\t/**\n\t * Returns the location of the tick at the given index\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForTick: function(index) {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar numTicks = me._ticks.length;\n\t\tvar tickWidth = 1 / Math.max(numTicks - (offset ? 0 : 1), 1);\n\n\t\treturn index < 0 || index > numTicks - 1\n\t\t\t? null\n\t\t\t: me.getPixelForDecimal(index * tickWidth + (offset ? tickWidth / 2 : 0));\n\t},\n\n\t/**\n\t * Utility for getting the pixel location of a percentage of scale\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetPixelForDecimal: function(decimal) {\n\t\tvar me = this;\n\n\t\tif (me._reversePixels) {\n\t\t\tdecimal = 1 - decimal;\n\t\t}\n\n\t\treturn me._startPixel + decimal * me._length;\n\t},\n\n\tgetDecimalForPixel: function(pixel) {\n\t\tvar decimal = (pixel - this._startPixel) / this._length;\n\t\treturn this._reversePixels ? 1 - decimal : decimal;\n\t},\n\n\t/**\n\t * Returns the pixel for the minimum chart value\n\t * The coordinate (0, 0) is at the upper-left corner of the canvas\n\t */\n\tgetBasePixel: function() {\n\t\treturn this.getPixelForValue(this.getBaseValue());\n\t},\n\n\tgetBaseValue: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0;\n\t},\n\n\t/**\n\t * Returns a subset of ticks to be plotted to avoid overlapping labels.\n\t * @private\n\t */\n\t_autoSkip: function(ticks) {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar axisLength = me._length;\n\t\tvar ticksLimit = tickOpts.maxTicksLimit || axisLength / me._tickSize() + 1;\n\t\tvar majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n\t\tvar numMajorIndices = majorIndices.length;\n\t\tvar first = majorIndices[0];\n\t\tvar last = majorIndices[numMajorIndices - 1];\n\t\tvar i, ilen, spacing, avgMajorSpacing;\n\n\t\t// If there are too many major ticks to display them all\n\t\tif (numMajorIndices > ticksLimit) {\n\t\t\tskipMajors(ticks, majorIndices, numMajorIndices / ticksLimit);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\n\t\tspacing = calculateSpacing(majorIndices, ticks, axisLength, ticksLimit);\n\n\t\tif (numMajorIndices > 0) {\n\t\t\tfor (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n\t\t\t\tskip(ticks, spacing, majorIndices[i], majorIndices[i + 1]);\n\t\t\t}\n\t\t\tavgMajorSpacing = numMajorIndices > 1 ? (last - first) / (numMajorIndices - 1) : null;\n\t\t\tskip(ticks, spacing, helpers$1.isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n\t\t\tskip(ticks, spacing, last, helpers$1.isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n\t\t\treturn nonSkipped(ticks);\n\t\t}\n\t\tskip(ticks, spacing);\n\t\treturn nonSkipped(ticks);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_tickSize: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\t// Calculate space needed by label in axis direction.\n\t\tvar rot = helpers$1.toRadians(me.labelRotation);\n\t\tvar cos = Math.abs(Math.cos(rot));\n\t\tvar sin = Math.abs(Math.sin(rot));\n\n\t\tvar labelSizes = me._getLabelSizes();\n\t\tvar padding = optionTicks.autoSkipPadding || 0;\n\t\tvar w = labelSizes ? labelSizes.widest.width + padding : 0;\n\t\tvar h = labelSizes ? labelSizes.highest.height + padding : 0;\n\n\t\t// Calculate space needed for 1 tick in axis direction.\n\t\treturn me.isHorizontal()\n\t\t\t? h * cos > w * sin ? w / cos : h / sin\n\t\t\t: h * sin < w * cos ? h / cos : w / sin;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_isVisible: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar display = me.options.display;\n\t\tvar i, ilen, meta;\n\n\t\tif (display !== 'auto') {\n\t\t\treturn !!display;\n\t\t}\n\n\t\t// When 'auto', the scale is visible if at least one associated dataset is visible.\n\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tif (meta.xAxisID === me.id || meta.yAxisID === me.id) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeGridLineItems: function(chartArea) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar options = me.options;\n\t\tvar gridLines = options.gridLines;\n\t\tvar position = options.position;\n\t\tvar offsetGridLines = gridLines.offsetGridLines;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar ticksLength = ticks.length + (offsetGridLines ? 1 : 0);\n\n\t\tvar tl = getTickMarkLength(gridLines);\n\t\tvar items = [];\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar axisHalfWidth = axisWidth / 2;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar alignBorderValue = function(pixel) {\n\t\t\treturn alignPixel(chart, pixel, axisWidth);\n\t\t};\n\t\tvar borderValue, i, tick, lineValue, alignedLineValue;\n\t\tvar tx1, ty1, tx2, ty2, x1, y1, x2, y2, lineWidth, lineColor, borderDash, borderDashOffset;\n\n\t\tif (position === 'top') {\n\t\t\tborderValue = alignBorderValue(me.bottom);\n\t\t\tty1 = me.bottom - tl;\n\t\t\tty2 = borderValue - axisHalfWidth;\n\t\t\ty1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n\t\t\ty2 = chartArea.bottom;\n\t\t} else if (position === 'bottom') {\n\t\t\tborderValue = alignBorderValue(me.top);\n\t\t\ty1 = chartArea.top;\n\t\t\ty2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n\t\t\tty1 = borderValue + axisHalfWidth;\n\t\t\tty2 = me.top + tl;\n\t\t} else if (position === 'left') {\n\t\t\tborderValue = alignBorderValue(me.right);\n\t\t\ttx1 = me.right - tl;\n\t\t\ttx2 = borderValue - axisHalfWidth;\n\t\t\tx1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n\t\t\tx2 = chartArea.right;\n\t\t} else {\n\t\t\tborderValue = alignBorderValue(me.left);\n\t\t\tx1 = chartArea.left;\n\t\t\tx2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n\t\t\ttx1 = borderValue + axisHalfWidth;\n\t\t\ttx2 = me.left + tl;\n\t\t}\n\n\t\tfor (i = 0; i < ticksLength; ++i) {\n\t\t\ttick = ticks[i] || {};\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(tick.label) && i < ticks.length) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (i === me.zeroLineIndex && options.offset === offsetGridLines) {\n\t\t\t\t// Draw the first index specially\n\t\t\t\tlineWidth = gridLines.zeroLineWidth;\n\t\t\t\tlineColor = gridLines.zeroLineColor;\n\t\t\t\tborderDash = gridLines.zeroLineBorderDash || [];\n\t\t\t\tborderDashOffset = gridLines.zeroLineBorderDashOffset || 0.0;\n\t\t\t} else {\n\t\t\t\tlineWidth = valueAtIndexOrDefault(gridLines.lineWidth, i, 1);\n\t\t\t\tlineColor = valueAtIndexOrDefault(gridLines.color, i, 'rgba(0,0,0,0.1)');\n\t\t\t\tborderDash = gridLines.borderDash || [];\n\t\t\t\tborderDashOffset = gridLines.borderDashOffset || 0.0;\n\t\t\t}\n\n\t\t\tlineValue = getPixelForGridLine(me, tick._index || i, offsetGridLines);\n\n\t\t\t// Skip if the pixel is out of the range\n\t\t\tif (lineValue === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\talignedLineValue = alignPixel(chart, lineValue, lineWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\ttx1 = tx2 = x1 = x2 = alignedLineValue;\n\t\t\t} else {\n\t\t\t\tty1 = ty2 = y1 = y2 = alignedLineValue;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\ttx1: tx1,\n\t\t\t\tty1: ty1,\n\t\t\t\ttx2: tx2,\n\t\t\t\tty2: ty2,\n\t\t\t\tx1: x1,\n\t\t\t\ty1: y1,\n\t\t\t\tx2: x2,\n\t\t\t\ty2: y2,\n\t\t\t\twidth: lineWidth,\n\t\t\t\tcolor: lineColor,\n\t\t\t\tborderDash: borderDash,\n\t\t\t\tborderDashOffset: borderDashOffset,\n\t\t\t});\n\t\t}\n\n\t\titems.ticksLength = ticksLength;\n\t\titems.borderValue = borderValue;\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeLabelItems: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar optionTicks = options.ticks;\n\t\tvar position = options.position;\n\t\tvar isMirrored = optionTicks.mirror;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar ticks = me._ticksToDraw;\n\t\tvar fonts = parseTickFontOptions(optionTicks);\n\t\tvar tickPadding = optionTicks.padding;\n\t\tvar tl = getTickMarkLength(options.gridLines);\n\t\tvar rotation = -helpers$1.toRadians(me.labelRotation);\n\t\tvar items = [];\n\t\tvar i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n\n\t\tif (position === 'top') {\n\t\t\ty = me.bottom - tl - tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'left';\n\t\t} else if (position === 'bottom') {\n\t\t\ty = me.top + tl + tickPadding;\n\t\t\ttextAlign = !rotation ? 'center' : 'right';\n\t\t} else if (position === 'left') {\n\t\t\tx = me.right - (isMirrored ? 0 : tl) - tickPadding;\n\t\t\ttextAlign = isMirrored ? 'left' : 'right';\n\t\t} else {\n\t\t\tx = me.left + (isMirrored ? 0 : tl) + tickPadding;\n\t\t\ttextAlign = isMirrored ? 'right' : 'left';\n\t\t}\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\ttick = ticks[i];\n\t\t\tlabel = tick.label;\n\n\t\t\t// autoskipper skipped this tick (#4635)\n\t\t\tif (isNullOrUndef(label)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tpixel = me.getPixelForTick(tick._index || i) + optionTicks.labelOffset;\n\t\t\tfont = tick.major ? fonts.major : fonts.minor;\n\t\t\tlineHeight = font.lineHeight;\n\t\t\tlineCount = isArray(label) ? label.length : 1;\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tx = pixel;\n\t\t\t\ttextOffset = position === 'top'\n\t\t\t\t\t? ((!rotation ? 0.5 : 1) - lineCount) * lineHeight\n\t\t\t\t\t: (!rotation ? 0.5 : 0) * lineHeight;\n\t\t\t} else {\n\t\t\t\ty = pixel;\n\t\t\t\ttextOffset = (1 - lineCount) * lineHeight / 2;\n\t\t\t}\n\n\t\t\titems.push({\n\t\t\t\tx: x,\n\t\t\t\ty: y,\n\t\t\t\trotation: rotation,\n\t\t\t\tlabel: label,\n\t\t\t\tfont: font,\n\t\t\t\ttextOffset: textOffset,\n\t\t\t\ttextAlign: textAlign\n\t\t\t});\n\t\t}\n\n\t\treturn items;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function(chartArea) {\n\t\tvar me = this;\n\t\tvar gridLines = me.options.gridLines;\n\n\t\tif (!gridLines.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar chart = me.chart;\n\t\tvar alignPixel = helpers$1._alignPixel;\n\t\tvar axisWidth = gridLines.drawBorder ? valueAtIndexOrDefault(gridLines.lineWidth, 0, 0) : 0;\n\t\tvar items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));\n\t\tvar width, color, i, ilen, item;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\twidth = item.width;\n\t\t\tcolor = item.color;\n\n\t\t\tif (width && color) {\n\t\t\t\tctx.save();\n\t\t\t\tctx.lineWidth = width;\n\t\t\t\tctx.strokeStyle = color;\n\t\t\t\tif (ctx.setLineDash) {\n\t\t\t\t\tctx.setLineDash(item.borderDash);\n\t\t\t\t\tctx.lineDashOffset = item.borderDashOffset;\n\t\t\t\t}\n\n\t\t\t\tctx.beginPath();\n\n\t\t\t\tif (gridLines.drawTicks) {\n\t\t\t\t\tctx.moveTo(item.tx1, item.ty1);\n\t\t\t\t\tctx.lineTo(item.tx2, item.ty2);\n\t\t\t\t}\n\n\t\t\t\tif (gridLines.drawOnChartArea) {\n\t\t\t\t\tctx.moveTo(item.x1, item.y1);\n\t\t\t\t\tctx.lineTo(item.x2, item.y2);\n\t\t\t\t}\n\n\t\t\t\tctx.stroke();\n\t\t\t\tctx.restore();\n\t\t\t}\n\t\t}\n\n\t\tif (axisWidth) {\n\t\t\t// Draw the line at the edge of the axis\n\t\t\tvar firstLineWidth = axisWidth;\n\t\t\tvar lastLineWidth = valueAtIndexOrDefault(gridLines.lineWidth, items.ticksLength - 1, 1);\n\t\t\tvar borderValue = items.borderValue;\n\t\t\tvar x1, x2, y1, y2;\n\n\t\t\tif (me.isHorizontal()) {\n\t\t\t\tx1 = alignPixel(chart, me.left, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\tx2 = alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\ty1 = y2 = borderValue;\n\t\t\t} else {\n\t\t\t\ty1 = alignPixel(chart, me.top, firstLineWidth) - firstLineWidth / 2;\n\t\t\t\ty2 = alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n\t\t\t\tx1 = x2 = borderValue;\n\t\t\t}\n\n\t\t\tctx.lineWidth = axisWidth;\n\t\t\tctx.strokeStyle = valueAtIndexOrDefault(gridLines.color, 0);\n\t\t\tctx.beginPath();\n\t\t\tctx.moveTo(x1, y1);\n\t\t\tctx.lineTo(x2, y2);\n\t\t\tctx.stroke();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar optionTicks = me.options.ticks;\n\n\t\tif (!optionTicks.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar ctx = me.ctx;\n\t\tvar items = me._labelItems || (me._labelItems = me._computeLabelItems());\n\t\tvar i, j, ilen, jlen, item, tickFont, label, y;\n\n\t\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\t\titem = items[i];\n\t\t\ttickFont = item.font;\n\n\t\t\t// Make sure we draw text in the correct color and font\n\t\t\tctx.save();\n\t\t\tctx.translate(item.x, item.y);\n\t\t\tctx.rotate(item.rotation);\n\t\t\tctx.font = tickFont.string;\n\t\t\tctx.fillStyle = tickFont.color;\n\t\t\tctx.textBaseline = 'middle';\n\t\t\tctx.textAlign = item.textAlign;\n\n\t\t\tlabel = item.label;\n\t\t\ty = item.textOffset;\n\t\t\tif (isArray(label)) {\n\t\t\t\tfor (j = 0, jlen = label.length; j < jlen; ++j) {\n\t\t\t\t\t// We just make sure the multiline element is a string here..\n\t\t\t\t\tctx.fillText('' + label[j], 0, y);\n\t\t\t\t\ty += tickFont.lineHeight;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tctx.fillText(label, 0, y);\n\t\t\t}\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar options = me.options;\n\t\tvar scaleLabel = options.scaleLabel;\n\n\t\tif (!scaleLabel.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar scaleLabelFontColor = valueOrDefault$a(scaleLabel.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar scaleLabelFont = helpers$1.options._parseFont(scaleLabel);\n\t\tvar scaleLabelPadding = helpers$1.options.toPadding(scaleLabel.padding);\n\t\tvar halfLineHeight = scaleLabelFont.lineHeight / 2;\n\t\tvar position = options.position;\n\t\tvar rotation = 0;\n\t\tvar scaleLabelX, scaleLabelY;\n\n\t\tif (me.isHorizontal()) {\n\t\t\tscaleLabelX = me.left + me.width / 2; // midpoint of the width\n\t\t\tscaleLabelY = position === 'bottom'\n\t\t\t\t? me.bottom - halfLineHeight - scaleLabelPadding.bottom\n\t\t\t\t: me.top + halfLineHeight + scaleLabelPadding.top;\n\t\t} else {\n\t\t\tvar isLeft = position === 'left';\n\t\t\tscaleLabelX = isLeft\n\t\t\t\t? me.left + halfLineHeight + scaleLabelPadding.top\n\t\t\t\t: me.right - halfLineHeight - scaleLabelPadding.top;\n\t\t\tscaleLabelY = me.top + me.height / 2;\n\t\t\trotation = isLeft ? -0.5 * Math.PI : 0.5 * Math.PI;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(scaleLabelX, scaleLabelY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\t\tctx.fillStyle = scaleLabelFontColor; // render in correct colour\n\t\tctx.font = scaleLabelFont.string;\n\t\tctx.fillText(scaleLabel.labelString, 0, 0);\n\t\tctx.restore();\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar me = this;\n\n\t\tif (!me._isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._drawGrid(chartArea);\n\t\tme._drawTitle();\n\t\tme._drawLabels();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_layers: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tz = opts.ticks && opts.ticks.z || 0;\n\t\tvar gz = opts.gridLines && opts.gridLines.z || 0;\n\n\t\tif (!me._isVisible() || tz === gz || me.draw !== me._draw) {\n\t\t\t// backward compatibility: draw has been overridden by custom scale\n\t\t\treturn [{\n\t\t\t\tz: tz,\n\t\t\t\tdraw: function() {\n\t\t\t\t\tme.draw.apply(me, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t}\n\n\t\treturn [{\n\t\t\tz: gz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawGrid.apply(me, arguments);\n\t\t\t\tme._drawTitle.apply(me, arguments);\n\t\t\t}\n\t\t}, {\n\t\t\tz: tz,\n\t\t\tdraw: function() {\n\t\t\t\tme._drawLabels.apply(me, arguments);\n\t\t\t}\n\t\t}];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getMatchingVisibleMetas: function(type) {\n\t\tvar me = this;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\treturn me.chart._getSortedVisibleDatasetMetas()\n\t\t\t.filter(function(meta) {\n\t\t\t\treturn (!type || meta.type === type)\n\t\t\t\t\t&& (isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id);\n\t\t\t});\n\t}\n});\n\nScale.prototype._draw = Scale.prototype.draw;\n\nvar core_scale = Scale;\n\nvar isNullOrUndef$1 = helpers$1.isNullOrUndef;\n\nvar defaultConfig = {\n\tposition: 'bottom'\n};\n\nvar scale_category = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar min = ticksOpts.min;\n\t\tvar max = ticksOpts.max;\n\t\tvar minIndex = 0;\n\t\tvar maxIndex = labels.length - 1;\n\t\tvar findIndex;\n\n\t\tif (min !== undefined) {\n\t\t\t// user specified min value\n\t\t\tfindIndex = labels.indexOf(min);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tminIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tif (max !== undefined) {\n\t\t\t// user specified max value\n\t\t\tfindIndex = labels.indexOf(max);\n\t\t\tif (findIndex >= 0) {\n\t\t\t\tmaxIndex = findIndex;\n\t\t\t}\n\t\t}\n\n\t\tme.minIndex = minIndex;\n\t\tme.maxIndex = maxIndex;\n\t\tme.min = labels[minIndex];\n\t\tme.max = labels[maxIndex];\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar labels = me._getLabels();\n\t\tvar minIndex = me.minIndex;\n\t\tvar maxIndex = me.maxIndex;\n\n\t\t// If we are viewing some subset of labels, slice the original array\n\t\tme.ticks = (minIndex === 0 && maxIndex === labels.length - 1) ? labels : labels.slice(minIndex, maxIndex + 1);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\n\t\tif (chart.getDatasetMeta(datasetIndex).controller._getValueScaleId() === me.id) {\n\t\t\treturn me.getRightValue(chart.data.datasets[datasetIndex].data[index]);\n\t\t}\n\n\t\treturn me._getLabels()[index];\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar offset = me.options.offset;\n\t\tvar ticks = me.ticks;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (!me.isHorizontal()) {\n\t\t\t// For backward compatibility, vertical category scale reverse is inverted.\n\t\t\tme._reversePixels = !me._reversePixels;\n\t\t}\n\n\t\tif (!ticks) {\n\t\t\treturn;\n\t\t}\n\n\t\tme._startValue = me.minIndex - (offset ? 0.5 : 0);\n\t\tme._valueRange = Math.max(ticks.length - (offset ? 0 : 1), 1);\n\t},\n\n\t// Used to get data value locations. Value can either be an index or a numerical value\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar valueCategory, labels, idx;\n\n\t\tif (!isNullOrUndef$1(index) && !isNullOrUndef$1(datasetIndex)) {\n\t\t\tvalue = me.chart.data.datasets[datasetIndex].data[index];\n\t\t}\n\n\t\t// If value is a data object, then index is the index in the data array,\n\t\t// not the index of the scale. We need to change that.\n\t\tif (!isNullOrUndef$1(value)) {\n\t\t\tvalueCategory = me.isHorizontal() ? value.x : value.y;\n\t\t}\n\t\tif (valueCategory !== undefined || (value !== undefined && isNaN(index))) {\n\t\t\tlabels = me._getLabels();\n\t\t\tvalue = helpers$1.valueOrDefault(valueCategory, value);\n\t\t\tidx = labels.indexOf(value);\n\t\t\tindex = idx !== -1 ? idx : index;\n\t\t\tif (isNaN(index)) {\n\t\t\t\tindex = value;\n\t\t\t}\n\t\t}\n\t\treturn me.getPixelForDecimal((index - me._startValue) / me._valueRange);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticks;\n\t\treturn index < 0 || index > ticks.length - 1\n\t\t\t? null\n\t\t\t: this.getPixelForValue(ticks[index], index + this.minIndex);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar value = Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._valueRange);\n\t\treturn Math.min(Math.max(value, 0), me.ticks.length - 1);\n\t},\n\n\tgetBasePixel: function() {\n\t\treturn this.bottom;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults = defaultConfig;\nscale_category._defaults = _defaults;\n\nvar noop = helpers$1.noop;\nvar isNullOrUndef$2 = helpers$1.isNullOrUndef;\n\n/**\n * Generate a set of linear ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks(generationOptions, dataRange) {\n\tvar ticks = [];\n\t// To get a \"nice\" value for the tick spacing, we will use the appropriately named\n\t// \"nice number\" algorithm. See https://stackoverflow.com/questions/8506881/nice-label-algorithm-for-charts-with-minimum-ticks\n\t// for details.\n\n\tvar MIN_SPACING = 1e-14;\n\tvar stepSize = generationOptions.stepSize;\n\tvar unit = stepSize || 1;\n\tvar maxNumSpaces = generationOptions.maxTicks - 1;\n\tvar min = generationOptions.min;\n\tvar max = generationOptions.max;\n\tvar precision = generationOptions.precision;\n\tvar rmin = dataRange.min;\n\tvar rmax = dataRange.max;\n\tvar spacing = helpers$1.niceNum((rmax - rmin) / maxNumSpaces / unit) * unit;\n\tvar factor, niceMin, niceMax, numSpaces;\n\n\t// Beyond MIN_SPACING floating point numbers being to lose precision\n\t// such that we can't do the math necessary to generate ticks\n\tif (spacing < MIN_SPACING && isNullOrUndef$2(min) && isNullOrUndef$2(max)) {\n\t\treturn [rmin, rmax];\n\t}\n\n\tnumSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n\tif (numSpaces > maxNumSpaces) {\n\t\t// If the calculated num of spaces exceeds maxNumSpaces, recalculate it\n\t\tspacing = helpers$1.niceNum(numSpaces * spacing / maxNumSpaces / unit) * unit;\n\t}\n\n\tif (stepSize || isNullOrUndef$2(precision)) {\n\t\t// If a precision is not specified, calculate factor based on spacing\n\t\tfactor = Math.pow(10, helpers$1._decimalPlaces(spacing));\n\t} else {\n\t\t// If the user specified a precision, round to that number of decimal places\n\t\tfactor = Math.pow(10, precision);\n\t\tspacing = Math.ceil(spacing * factor) / factor;\n\t}\n\n\tniceMin = Math.floor(rmin / spacing) * spacing;\n\tniceMax = Math.ceil(rmax / spacing) * spacing;\n\n\t// If min, max and stepSize is set and they make an evenly spaced scale use it.\n\tif (stepSize) {\n\t\t// If very close to our whole number, use it.\n\t\tif (!isNullOrUndef$2(min) && helpers$1.almostWhole(min / spacing, spacing / 1000)) {\n\t\t\tniceMin = min;\n\t\t}\n\t\tif (!isNullOrUndef$2(max) && helpers$1.almostWhole(max / spacing, spacing / 1000)) {\n\t\t\tniceMax = max;\n\t\t}\n\t}\n\n\tnumSpaces = (niceMax - niceMin) / spacing;\n\t// If very close to our rounded value, use it.\n\tif (helpers$1.almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n\t\tnumSpaces = Math.round(numSpaces);\n\t} else {\n\t\tnumSpaces = Math.ceil(numSpaces);\n\t}\n\n\tniceMin = Math.round(niceMin * factor) / factor;\n\tniceMax = Math.round(niceMax * factor) / factor;\n\tticks.push(isNullOrUndef$2(min) ? niceMin : min);\n\tfor (var j = 1; j < numSpaces; ++j) {\n\t\tticks.push(Math.round((niceMin + j * spacing) * factor) / factor);\n\t}\n\tticks.push(isNullOrUndef$2(max) ? niceMax : max);\n\n\treturn ticks;\n}\n\nvar scale_linearbase = core_scale.extend({\n\tgetRightValue: function(value) {\n\t\tif (typeof value === 'string') {\n\t\t\treturn +value;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, value);\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// If we are forcing it to begin at 0, but 0 will already be rendered on the chart,\n\t\t// do nothing since that would make the chart weird. If the user really wants a weird chart\n\t\t// axis, they can manually override it\n\t\tif (tickOpts.beginAtZero) {\n\t\t\tvar minSign = helpers$1.sign(me.min);\n\t\t\tvar maxSign = helpers$1.sign(me.max);\n\n\t\t\tif (minSign < 0 && maxSign < 0) {\n\t\t\t\t// move the top up to 0\n\t\t\t\tme.max = 0;\n\t\t\t} else if (minSign > 0 && maxSign > 0) {\n\t\t\t\t// move the bottom down to 0\n\t\t\t\tme.min = 0;\n\t\t\t}\n\t\t}\n\n\t\tvar setMin = tickOpts.min !== undefined || tickOpts.suggestedMin !== undefined;\n\t\tvar setMax = tickOpts.max !== undefined || tickOpts.suggestedMax !== undefined;\n\n\t\tif (tickOpts.min !== undefined) {\n\t\t\tme.min = tickOpts.min;\n\t\t} else if (tickOpts.suggestedMin !== undefined) {\n\t\t\tif (me.min === null) {\n\t\t\t\tme.min = tickOpts.suggestedMin;\n\t\t\t} else {\n\t\t\t\tme.min = Math.min(me.min, tickOpts.suggestedMin);\n\t\t\t}\n\t\t}\n\n\t\tif (tickOpts.max !== undefined) {\n\t\t\tme.max = tickOpts.max;\n\t\t} else if (tickOpts.suggestedMax !== undefined) {\n\t\t\tif (me.max === null) {\n\t\t\t\tme.max = tickOpts.suggestedMax;\n\t\t\t} else {\n\t\t\t\tme.max = Math.max(me.max, tickOpts.suggestedMax);\n\t\t\t}\n\t\t}\n\n\t\tif (setMin !== setMax) {\n\t\t\t// We set the min or the max but not both.\n\t\t\t// So ensure that our range is good\n\t\t\t// Inverted or 0 length range can happen when\n\t\t\t// ticks.min is set, and no datasets are visible\n\t\t\tif (me.min >= me.max) {\n\t\t\t\tif (setMin) {\n\t\t\t\t\tme.max = me.min + 1;\n\t\t\t\t} else {\n\t\t\t\t\tme.min = me.max - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (me.min === me.max) {\n\t\t\tme.max++;\n\n\t\t\tif (!tickOpts.beginAtZero) {\n\t\t\t\tme.min--;\n\t\t\t}\n\t\t}\n\t},\n\n\tgetTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar stepSize = tickOpts.stepSize;\n\t\tvar maxTicksLimit = tickOpts.maxTicksLimit;\n\t\tvar maxTicks;\n\n\t\tif (stepSize) {\n\t\t\tmaxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n\t\t} else {\n\t\t\tmaxTicks = me._computeTickLimit();\n\t\t\tmaxTicksLimit = maxTicksLimit || 11;\n\t\t}\n\n\t\tif (maxTicksLimit) {\n\t\t\tmaxTicks = Math.min(maxTicksLimit, maxTicks);\n\t\t}\n\n\t\treturn maxTicks;\n\t},\n\n\t_computeTickLimit: function() {\n\t\treturn Number.POSITIVE_INFINITY;\n\t},\n\n\thandleDirectionalChanges: noop,\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\t// Figure out what the max number of ticks we can support it is based on the size of\n\t\t// the axis area. For now, we say that the minimum tick spacing in pixels must be 40\n\t\t// We also limit the maximum number of ticks to 11 which gives a nice 10 squares on\n\t\t// the graph. Make sure we always have at least 2 ticks\n\t\tvar maxTicks = me.getTickLimit();\n\t\tmaxTicks = Math.max(2, maxTicks);\n\n\t\tvar numericGeneratorOptions = {\n\t\t\tmaxTicks: maxTicks,\n\t\t\tmin: tickOpts.min,\n\t\t\tmax: tickOpts.max,\n\t\t\tprecision: tickOpts.precision,\n\t\t\tstepSize: helpers$1.valueOrDefault(tickOpts.fixedStepSize, tickOpts.stepSize)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks(numericGeneratorOptions, me);\n\n\t\tme.handleDirectionalChanges();\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\t\tme.ticksAsNumbers = me.ticks.slice();\n\t\tme.zeroLineIndex = me.ticks.indexOf(0);\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(me);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar ticks = me.getTicks();\n\t\tvar start = me.min;\n\t\tvar end = me.max;\n\t\tvar offset;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (me.options.offset && ticks.length) {\n\t\t\toffset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n\t\t\tstart -= offset;\n\t\t\tend += offset;\n\t\t}\n\t\tme._startValue = start;\n\t\tme._endValue = end;\n\t\tme._valueRange = end - start;\n\t}\n});\n\nvar defaultConfig$1 = {\n\tposition: 'left',\n\tticks: {\n\t\tcallback: core_ticks.formatters.linear\n\t}\n};\n\nvar DEFAULT_MIN = 0;\nvar DEFAULT_MAX = 1;\n\nfunction getOrCreateStack(stacks, stacked, meta) {\n\tvar key = [\n\t\tmeta.type,\n\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\tstacked === undefined && meta.stack === undefined ? meta.index : '',\n\t\tmeta.stack\n\t].join('.');\n\n\tif (stacks[key] === undefined) {\n\t\tstacks[key] = {\n\t\t\tpos: [],\n\t\t\tneg: []\n\t\t};\n\t}\n\n\treturn stacks[key];\n}\n\nfunction stackData(scale, stacks, meta, data) {\n\tvar opts = scale.options;\n\tvar stacked = opts.stacked;\n\tvar stack = getOrCreateStack(stacks, stacked, meta);\n\tvar pos = stack.pos;\n\tvar neg = stack.neg;\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tpos[i] = pos[i] || 0;\n\t\tneg[i] = neg[i] || 0;\n\n\t\tif (opts.relativePoints) {\n\t\t\tpos[i] = 100;\n\t\t} else if (value.min < 0 || value.max < 0) {\n\t\t\tneg[i] += value.min;\n\t\t} else {\n\t\t\tpos[i] += value.max;\n\t\t}\n\t}\n}\n\nfunction updateMinMax(scale, meta, data) {\n\tvar ilen = data.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = scale._parseValue(data[i]);\n\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tscale.min = Math.min(scale.min, value.min);\n\t\tscale.max = Math.max(scale.max, value.max);\n\t}\n}\n\nvar scale_linear = scale_linearbase.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = me._getMatchingVisibleMetas();\n\t\tvar hasStacks = opts.stacked;\n\t\tvar stacks = {};\n\t\tvar ilen = metasets.length;\n\t\tvar i, meta, data, values;\n\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (i = 0; !hasStacks && i < ilen; ++i) {\n\t\t\t\tmeta = metasets[i];\n\t\t\t\thasStacks = meta.stack !== undefined;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\tdata = datasets[meta.index].data;\n\t\t\tif (hasStacks) {\n\t\t\t\tstackData(me, stacks, meta, data);\n\t\t\t} else {\n\t\t\t\tupdateMinMax(me, meta, data);\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.each(stacks, function(stackValues) {\n\t\t\tvalues = stackValues.pos.concat(stackValues.neg);\n\t\t\tme.min = Math.min(me.min, helpers$1.min(values));\n\t\t\tme.max = Math.max(me.max, helpers$1.max(values));\n\t\t});\n\n\t\tme.min = helpers$1.isFinite(me.min) && !isNaN(me.min) ? me.min : DEFAULT_MIN;\n\t\tme.max = helpers$1.isFinite(me.max) && !isNaN(me.max) ? me.max : DEFAULT_MAX;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\tvar me = this;\n\t\tvar tickFont;\n\n\t\tif (me.isHorizontal()) {\n\t\t\treturn Math.ceil(me.width / 40);\n\t\t}\n\t\ttickFont = helpers$1.options._parseFont(me.options.ticks);\n\t\treturn Math.ceil(me.height / tickFont.lineHeight);\n\t},\n\n\t// Called after the ticks are built. We need\n\thandleDirectionalChanges: function() {\n\t\tif (!this.isHorizontal()) {\n\t\t\t// We are in a vertical orientation. The top value is the highest. So reverse the array\n\t\t\tthis.ticks.reverse();\n\t\t}\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\t// Utils\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\treturn me.getPixelForDecimal((+me.getRightValue(value) - me._startValue) / me._valueRange);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\treturn this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.ticksAsNumbers;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$1 = defaultConfig$1;\nscale_linear._defaults = _defaults$1;\n\nvar valueOrDefault$b = helpers$1.valueOrDefault;\nvar log10 = helpers$1.math.log10;\n\n/**\n * Generate a set of logarithmic ticks\n * @param generationOptions the options used to generate the ticks\n * @param dataRange the range of the data\n * @returns {number[]} array of tick values\n */\nfunction generateTicks$1(generationOptions, dataRange) {\n\tvar ticks = [];\n\n\tvar tickVal = valueOrDefault$b(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n\n\tvar endExp = Math.floor(log10(dataRange.max));\n\tvar endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n\tvar exp, significand;\n\n\tif (tickVal === 0) {\n\t\texp = Math.floor(log10(dataRange.minNotZero));\n\t\tsignificand = Math.floor(dataRange.minNotZero / Math.pow(10, exp));\n\n\t\tticks.push(tickVal);\n\t\ttickVal = significand * Math.pow(10, exp);\n\t} else {\n\t\texp = Math.floor(log10(tickVal));\n\t\tsignificand = Math.floor(tickVal / Math.pow(10, exp));\n\t}\n\tvar precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n\n\tdo {\n\t\tticks.push(tickVal);\n\n\t\t++significand;\n\t\tif (significand === 10) {\n\t\t\tsignificand = 1;\n\t\t\t++exp;\n\t\t\tprecision = exp >= 0 ? 1 : precision;\n\t\t}\n\n\t\ttickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n\t} while (exp < endExp || (exp === endExp && significand < endSignificand));\n\n\tvar lastTick = valueOrDefault$b(generationOptions.max, tickVal);\n\tticks.push(lastTick);\n\n\treturn ticks;\n}\n\nvar defaultConfig$2 = {\n\tposition: 'left',\n\n\t// label settings\n\tticks: {\n\t\tcallback: core_ticks.formatters.logarithmic\n\t}\n};\n\n// TODO(v3): change this to positiveOrDefault\nfunction nonNegativeOrDefault(value, defaultValue) {\n\treturn helpers$1.isFinite(value) && value >= 0 ? value : defaultValue;\n}\n\nvar scale_logarithmic = core_scale.extend({\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar chart = me.chart;\n\t\tvar datasets = chart.data.datasets;\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tfunction IDMatches(meta) {\n\t\t\treturn isHorizontal ? meta.xAxisID === me.id : meta.yAxisID === me.id;\n\t\t}\n\t\tvar datasetIndex, meta, value, data, i, ilen;\n\n\t\t// Calculate Range\n\t\tme.min = Number.POSITIVE_INFINITY;\n\t\tme.max = Number.NEGATIVE_INFINITY;\n\t\tme.minNotZero = Number.POSITIVE_INFINITY;\n\n\t\tvar hasStacks = opts.stacked;\n\t\tif (hasStacks === undefined) {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta) &&\n\t\t\t\t\tmeta.stack !== undefined) {\n\t\t\t\t\thasStacks = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (opts.stacked || hasStacks) {\n\t\t\tvar valuesPerStack = {};\n\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tvar key = [\n\t\t\t\t\tmeta.type,\n\t\t\t\t\t// we have a separate stack for stack=undefined datasets when the opts.stacked is undefined\n\t\t\t\t\t((opts.stacked === undefined && meta.stack === undefined) ? datasetIndex : ''),\n\t\t\t\t\tmeta.stack\n\t\t\t\t].join('.');\n\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tif (valuesPerStack[key] === undefined) {\n\t\t\t\t\t\tvaluesPerStack[key] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvar values = valuesPerStack[key];\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalues[i] = values[i] || 0;\n\t\t\t\t\t\tvalues[i] += value.max;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thelpers$1.each(valuesPerStack, function(valuesForType) {\n\t\t\t\tif (valuesForType.length > 0) {\n\t\t\t\t\tvar minVal = helpers$1.min(valuesForType);\n\t\t\t\t\tvar maxVal = helpers$1.max(valuesForType);\n\t\t\t\t\tme.min = Math.min(me.min, minVal);\n\t\t\t\t\tme.max = Math.max(me.max, maxVal);\n\t\t\t\t}\n\t\t\t});\n\n\t\t} else {\n\t\t\tfor (datasetIndex = 0; datasetIndex < datasets.length; datasetIndex++) {\n\t\t\t\tmeta = chart.getDatasetMeta(datasetIndex);\n\t\t\t\tif (chart.isDatasetVisible(datasetIndex) && IDMatches(meta)) {\n\t\t\t\t\tdata = datasets[datasetIndex].data;\n\t\t\t\t\tfor (i = 0, ilen = data.length; i < ilen; i++) {\n\t\t\t\t\t\tvalue = me._parseValue(data[i]);\n\t\t\t\t\t\t// invalid, hidden and negative values are ignored\n\t\t\t\t\t\tif (isNaN(value.min) || isNaN(value.max) || meta.data[i].hidden || value.min < 0 || value.max < 0) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tme.min = Math.min(value.min, me.min);\n\t\t\t\t\t\tme.max = Math.max(value.max, me.max);\n\n\t\t\t\t\t\tif (value.min !== 0) {\n\t\t\t\t\t\t\tme.minNotZero = Math.min(value.min, me.minNotZero);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tme.min = helpers$1.isFinite(me.min) ? me.min : null;\n\t\tme.max = helpers$1.isFinite(me.max) ? me.max : null;\n\t\tme.minNotZero = helpers$1.isFinite(me.minNotZero) ? me.minNotZero : null;\n\n\t\t// Common base implementation to handle ticks.min, ticks.max\n\t\tthis.handleTickRangeOptions();\n\t},\n\n\thandleTickRangeOptions: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar DEFAULT_MIN = 1;\n\t\tvar DEFAULT_MAX = 10;\n\n\t\tme.min = nonNegativeOrDefault(tickOpts.min, me.min);\n\t\tme.max = nonNegativeOrDefault(tickOpts.max, me.max);\n\n\t\tif (me.min === me.max) {\n\t\t\tif (me.min !== 0 && me.min !== null) {\n\t\t\t\tme.min = Math.pow(10, Math.floor(log10(me.min)) - 1);\n\t\t\t\tme.max = Math.pow(10, Math.floor(log10(me.max)) + 1);\n\t\t\t} else {\n\t\t\t\tme.min = DEFAULT_MIN;\n\t\t\t\tme.max = DEFAULT_MAX;\n\t\t\t}\n\t\t}\n\t\tif (me.min === null) {\n\t\t\tme.min = Math.pow(10, Math.floor(log10(me.max)) - 1);\n\t\t}\n\t\tif (me.max === null) {\n\t\t\tme.max = me.min !== 0\n\t\t\t\t? Math.pow(10, Math.floor(log10(me.min)) + 1)\n\t\t\t\t: DEFAULT_MAX;\n\t\t}\n\t\tif (me.minNotZero === null) {\n\t\t\tif (me.min > 0) {\n\t\t\t\tme.minNotZero = me.min;\n\t\t\t} else if (me.max < 1) {\n\t\t\t\tme.minNotZero = Math.pow(10, Math.floor(log10(me.max)));\n\t\t\t} else {\n\t\t\t\tme.minNotZero = DEFAULT_MIN;\n\t\t\t}\n\t\t}\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar tickOpts = me.options.ticks;\n\t\tvar reverse = !me.isHorizontal();\n\n\t\tvar generationOptions = {\n\t\t\tmin: nonNegativeOrDefault(tickOpts.min),\n\t\t\tmax: nonNegativeOrDefault(tickOpts.max)\n\t\t};\n\t\tvar ticks = me.ticks = generateTicks$1(generationOptions, me);\n\n\t\t// At this point, we need to update our max and min given the tick values since we have expanded the\n\t\t// range of the scale\n\t\tme.max = helpers$1.max(ticks);\n\t\tme.min = helpers$1.min(ticks);\n\n\t\tif (tickOpts.reverse) {\n\t\t\treverse = !reverse;\n\t\t\tme.start = me.max;\n\t\t\tme.end = me.min;\n\t\t} else {\n\t\t\tme.start = me.min;\n\t\t\tme.end = me.max;\n\t\t}\n\t\tif (reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tthis.tickValues = this.ticks.slice();\n\n\t\tcore_scale.prototype.convertTicksToLabels.call(this);\n\t},\n\n\t// Get the correct tooltip label\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn this._getScaleLabel(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.tickValues;\n\t\tif (index < 0 || index > ticks.length - 1) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.getPixelForValue(ticks[index]);\n\t},\n\n\t/**\n\t * Returns the value of the first tick.\n\t * @param {number} value - The minimum not zero value.\n\t * @return {number} The first tick value.\n\t * @private\n\t */\n\t_getFirstTickValue: function(value) {\n\t\tvar exp = Math.floor(log10(value));\n\t\tvar significand = Math.floor(value / Math.pow(10, exp));\n\n\t\treturn significand * Math.pow(10, exp);\n\t},\n\n\t_configure: function() {\n\t\tvar me = this;\n\t\tvar start = me.min;\n\t\tvar offset = 0;\n\n\t\tcore_scale.prototype._configure.call(me);\n\n\t\tif (start === 0) {\n\t\t\tstart = me._getFirstTickValue(me.minNotZero);\n\t\t\toffset = valueOrDefault$b(me.options.ticks.fontSize, core_defaults.global.defaultFontSize) / me._length;\n\t\t}\n\n\t\tme._startValue = log10(start);\n\t\tme._valueOffset = offset;\n\t\tme._valueRange = (log10(me.max) - log10(start)) / (1 - offset);\n\t},\n\n\tgetPixelForValue: function(value) {\n\t\tvar me = this;\n\t\tvar decimal = 0;\n\n\t\tvalue = +me.getRightValue(value);\n\n\t\tif (value > me.min && value > 0) {\n\t\t\tdecimal = (log10(value) - me._startValue) / me._valueRange + me._valueOffset;\n\t\t}\n\t\treturn me.getPixelForDecimal(decimal);\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar decimal = me.getDecimalForPixel(pixel);\n\t\treturn decimal === 0 && me.min === 0\n\t\t\t? 0\n\t\t\t: Math.pow(10, me._startValue + (decimal - me._valueOffset) * me._valueRange);\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$2 = defaultConfig$2;\nscale_logarithmic._defaults = _defaults$2;\n\nvar valueOrDefault$c = helpers$1.valueOrDefault;\nvar valueAtIndexOrDefault$1 = helpers$1.valueAtIndexOrDefault;\nvar resolve$4 = helpers$1.options.resolve;\n\nvar defaultConfig$3 = {\n\tdisplay: true,\n\n\t// Boolean - Whether to animate scaling the chart from the centre\n\tanimate: true,\n\tposition: 'chartArea',\n\n\tangleLines: {\n\t\tdisplay: true,\n\t\tcolor: 'rgba(0,0,0,0.1)',\n\t\tlineWidth: 1,\n\t\tborderDash: [],\n\t\tborderDashOffset: 0.0\n\t},\n\n\tgridLines: {\n\t\tcircular: false\n\t},\n\n\t// label settings\n\tticks: {\n\t\t// Boolean - Show a backdrop to the scale label\n\t\tshowLabelBackdrop: true,\n\n\t\t// String - The colour of the label backdrop\n\t\tbackdropColor: 'rgba(255,255,255,0.75)',\n\n\t\t// Number - The backdrop padding above & below the label in pixels\n\t\tbackdropPaddingY: 2,\n\n\t\t// Number - The backdrop padding to the side of the label in pixels\n\t\tbackdropPaddingX: 2,\n\n\t\tcallback: core_ticks.formatters.linear\n\t},\n\n\tpointLabels: {\n\t\t// Boolean - if true, show point labels\n\t\tdisplay: true,\n\n\t\t// Number - Point label font size in pixels\n\t\tfontSize: 10,\n\n\t\t// Function - Used to convert point labels\n\t\tcallback: function(label) {\n\t\t\treturn label;\n\t\t}\n\t}\n};\n\nfunction getTickBackdropHeight(opts) {\n\tvar tickOpts = opts.ticks;\n\n\tif (tickOpts.display && opts.display) {\n\t\treturn valueOrDefault$c(tickOpts.fontSize, core_defaults.global.defaultFontSize) + tickOpts.backdropPaddingY * 2;\n\t}\n\treturn 0;\n}\n\nfunction measureLabelSize(ctx, lineHeight, label) {\n\tif (helpers$1.isArray(label)) {\n\t\treturn {\n\t\t\tw: helpers$1.longestText(ctx, ctx.font, label),\n\t\t\th: label.length * lineHeight\n\t\t};\n\t}\n\n\treturn {\n\t\tw: ctx.measureText(label).width,\n\t\th: lineHeight\n\t};\n}\n\nfunction determineLimits(angle, pos, size, min, max) {\n\tif (angle === min || angle === max) {\n\t\treturn {\n\t\t\tstart: pos - (size / 2),\n\t\t\tend: pos + (size / 2)\n\t\t};\n\t} else if (angle < min || angle > max) {\n\t\treturn {\n\t\t\tstart: pos - size,\n\t\t\tend: pos\n\t\t};\n\t}\n\n\treturn {\n\t\tstart: pos,\n\t\tend: pos + size\n\t};\n}\n\n/**\n * Helper function to fit a radial linear scale with point labels\n */\nfunction fitWithPointLabels(scale) {\n\n\t// Right, this is really confusing and there is a lot of maths going on here\n\t// The gist of the problem is here: https://gist.github.com/nnnick/696cc9c55f4b0beb8fe9\n\t//\n\t// Reaction: https://dl.dropboxusercontent.com/u/34601363/toomuchscience.gif\n\t//\n\t// Solution:\n\t//\n\t// We assume the radius of the polygon is half the size of the canvas at first\n\t// at each index we check if the text overlaps.\n\t//\n\t// Where it does, we store that angle and that index.\n\t//\n\t// After finding the largest index and angle we calculate how much we need to remove\n\t// from the shape radius to move the point inwards by that x.\n\t//\n\t// We average the left and right distances to get the maximum shape radius that can fit in the box\n\t// along with labels.\n\t//\n\t// Once we have that, we can find the centre point for the chart, by taking the x text protrusion\n\t// on each side, removing that from the size, halving it and adding the left x protrusion width.\n\t//\n\t// This will mean we have a shape fitted to the canvas, as large as it can be with the labels\n\t// and position it in the most space efficient manner\n\t//\n\t// https://dl.dropboxusercontent.com/u/34601363/yeahscience.gif\n\n\tvar plFont = helpers$1.options._parseFont(scale.options.pointLabels);\n\n\t// Get maximum radius of the polygon. Either half the height (minus the text width) or half the width.\n\t// Use this to calculate the offset + change. - Make sure L/R protrusion is at least 0 to stop issues with centre points\n\tvar furthestLimits = {\n\t\tl: 0,\n\t\tr: scale.width,\n\t\tt: 0,\n\t\tb: scale.height - scale.paddingTop\n\t};\n\tvar furthestAngles = {};\n\tvar i, textSize, pointPosition;\n\n\tscale.ctx.font = plFont.string;\n\tscale._pointLabelSizes = [];\n\n\tvar valueCount = scale.chart.data.labels.length;\n\tfor (i = 0; i < valueCount; i++) {\n\t\tpointPosition = scale.getPointPosition(i, scale.drawingArea + 5);\n\t\ttextSize = measureLabelSize(scale.ctx, plFont.lineHeight, scale.pointLabels[i]);\n\t\tscale._pointLabelSizes[i] = textSize;\n\n\t\t// Add quarter circle to make degree 0 mean top of circle\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians) % 360;\n\t\tvar hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n\t\tvar vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n\n\t\tif (hLimits.start < furthestLimits.l) {\n\t\t\tfurthestLimits.l = hLimits.start;\n\t\t\tfurthestAngles.l = angleRadians;\n\t\t}\n\n\t\tif (hLimits.end > furthestLimits.r) {\n\t\t\tfurthestLimits.r = hLimits.end;\n\t\t\tfurthestAngles.r = angleRadians;\n\t\t}\n\n\t\tif (vLimits.start < furthestLimits.t) {\n\t\t\tfurthestLimits.t = vLimits.start;\n\t\t\tfurthestAngles.t = angleRadians;\n\t\t}\n\n\t\tif (vLimits.end > furthestLimits.b) {\n\t\t\tfurthestLimits.b = vLimits.end;\n\t\t\tfurthestAngles.b = angleRadians;\n\t\t}\n\t}\n\n\tscale.setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n}\n\nfunction getTextAlignForAngle(angle) {\n\tif (angle === 0 || angle === 180) {\n\t\treturn 'center';\n\t} else if (angle < 180) {\n\t\treturn 'left';\n\t}\n\n\treturn 'right';\n}\n\nfunction fillText(ctx, text, position, lineHeight) {\n\tvar y = position.y + lineHeight / 2;\n\tvar i, ilen;\n\n\tif (helpers$1.isArray(text)) {\n\t\tfor (i = 0, ilen = text.length; i < ilen; ++i) {\n\t\t\tctx.fillText(text[i], position.x, y);\n\t\t\ty += lineHeight;\n\t\t}\n\t} else {\n\t\tctx.fillText(text, position.x, y);\n\t}\n}\n\nfunction adjustPointPositionForLabelHeight(angle, textSize, position) {\n\tif (angle === 90 || angle === 270) {\n\t\tposition.y -= (textSize.h / 2);\n\t} else if (angle > 270 || angle < 90) {\n\t\tposition.y -= textSize.h;\n\t}\n}\n\nfunction drawPointLabels(scale) {\n\tvar ctx = scale.ctx;\n\tvar opts = scale.options;\n\tvar pointLabelOpts = opts.pointLabels;\n\tvar tickBackdropHeight = getTickBackdropHeight(opts);\n\tvar outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n\tvar plFont = helpers$1.options._parseFont(pointLabelOpts);\n\n\tctx.save();\n\n\tctx.font = plFont.string;\n\tctx.textBaseline = 'middle';\n\n\tfor (var i = scale.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t// Extra pixels out for some label spacing\n\t\tvar extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n\t\tvar pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + 5);\n\n\t\t// Keep this in loop since we may support array properties here\n\t\tvar pointLabelFontColor = valueAtIndexOrDefault$1(pointLabelOpts.fontColor, i, core_defaults.global.defaultFontColor);\n\t\tctx.fillStyle = pointLabelFontColor;\n\n\t\tvar angleRadians = scale.getIndexAngle(i);\n\t\tvar angle = helpers$1.toDegrees(angleRadians);\n\t\tctx.textAlign = getTextAlignForAngle(angle);\n\t\tadjustPointPositionForLabelHeight(angle, scale._pointLabelSizes[i], pointLabelPosition);\n\t\tfillText(ctx, scale.pointLabels[i], pointLabelPosition, plFont.lineHeight);\n\t}\n\tctx.restore();\n}\n\nfunction drawRadiusLine(scale, gridLineOpts, radius, index) {\n\tvar ctx = scale.ctx;\n\tvar circular = gridLineOpts.circular;\n\tvar valueCount = scale.chart.data.labels.length;\n\tvar lineColor = valueAtIndexOrDefault$1(gridLineOpts.color, index - 1);\n\tvar lineWidth = valueAtIndexOrDefault$1(gridLineOpts.lineWidth, index - 1);\n\tvar pointPosition;\n\n\tif ((!circular && !valueCount) || !lineColor || !lineWidth) {\n\t\treturn;\n\t}\n\n\tctx.save();\n\tctx.strokeStyle = lineColor;\n\tctx.lineWidth = lineWidth;\n\tif (ctx.setLineDash) {\n\t\tctx.setLineDash(gridLineOpts.borderDash || []);\n\t\tctx.lineDashOffset = gridLineOpts.borderDashOffset || 0.0;\n\t}\n\n\tctx.beginPath();\n\tif (circular) {\n\t\t// Draw circular arcs between the points\n\t\tctx.arc(scale.xCenter, scale.yCenter, radius, 0, Math.PI * 2);\n\t} else {\n\t\t// Draw straight lines connecting each index\n\t\tpointPosition = scale.getPointPosition(0, radius);\n\t\tctx.moveTo(pointPosition.x, pointPosition.y);\n\n\t\tfor (var i = 1; i < valueCount; i++) {\n\t\t\tpointPosition = scale.getPointPosition(i, radius);\n\t\t\tctx.lineTo(pointPosition.x, pointPosition.y);\n\t\t}\n\t}\n\tctx.closePath();\n\tctx.stroke();\n\tctx.restore();\n}\n\nfunction numberOrZero(param) {\n\treturn helpers$1.isNumber(param) ? param : 0;\n}\n\nvar scale_radialLinear = scale_linearbase.extend({\n\tsetDimensions: function() {\n\t\tvar me = this;\n\n\t\t// Set the unconstrained dimension before label rotation\n\t\tme.width = me.maxWidth;\n\t\tme.height = me.maxHeight;\n\t\tme.paddingTop = getTickBackdropHeight(me.options) / 2;\n\t\tme.xCenter = Math.floor(me.width / 2);\n\t\tme.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n\t\tme.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar min = Number.POSITIVE_INFINITY;\n\t\tvar max = Number.NEGATIVE_INFINITY;\n\n\t\thelpers$1.each(chart.data.datasets, function(dataset, datasetIndex) {\n\t\t\tif (chart.isDatasetVisible(datasetIndex)) {\n\t\t\t\tvar meta = chart.getDatasetMeta(datasetIndex);\n\n\t\t\t\thelpers$1.each(dataset.data, function(rawValue, index) {\n\t\t\t\t\tvar value = +me.getRightValue(rawValue);\n\t\t\t\t\tif (isNaN(value) || meta.data[index].hidden) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tmin = Math.min(value, min);\n\t\t\t\t\tmax = Math.max(value, max);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tme.min = (min === Number.POSITIVE_INFINITY ? 0 : min);\n\t\tme.max = (max === Number.NEGATIVE_INFINITY ? 0 : max);\n\n\t\t// Common base implementation to handle ticks.min, ticks.max, ticks.beginAtZero\n\t\tme.handleTickRangeOptions();\n\t},\n\n\t// Returns the maximum number of ticks based on the scale dimension\n\t_computeTickLimit: function() {\n\t\treturn Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n\t},\n\n\tconvertTicksToLabels: function() {\n\t\tvar me = this;\n\n\t\tscale_linearbase.prototype.convertTicksToLabels.call(me);\n\n\t\t// Point labels\n\t\tme.pointLabels = me.chart.data.labels.map(function() {\n\t\t\tvar label = helpers$1.callback(me.options.pointLabels.callback, arguments, me);\n\t\t\treturn label || label === 0 ? label : '';\n\t\t});\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\treturn +this.getRightValue(this.chart.data.datasets[datasetIndex].data[index]);\n\t},\n\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\n\t\tif (opts.display && opts.pointLabels.display) {\n\t\t\tfitWithPointLabels(me);\n\t\t} else {\n\t\t\tme.setCenterPoint(0, 0, 0, 0);\n\t\t}\n\t},\n\n\t/**\n\t * Set radius reductions and determine new radius and center point\n\t * @private\n\t */\n\tsetReductions: function(largestPossibleRadius, furthestLimits, furthestAngles) {\n\t\tvar me = this;\n\t\tvar radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n\t\tvar radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n\t\tvar radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n\t\tvar radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n\n\t\tradiusReductionLeft = numberOrZero(radiusReductionLeft);\n\t\tradiusReductionRight = numberOrZero(radiusReductionRight);\n\t\tradiusReductionTop = numberOrZero(radiusReductionTop);\n\t\tradiusReductionBottom = numberOrZero(radiusReductionBottom);\n\n\t\tme.drawingArea = Math.min(\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n\t\t\tMath.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2));\n\t\tme.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n\t},\n\n\tsetCenterPoint: function(leftMovement, rightMovement, topMovement, bottomMovement) {\n\t\tvar me = this;\n\t\tvar maxRight = me.width - rightMovement - me.drawingArea;\n\t\tvar maxLeft = leftMovement + me.drawingArea;\n\t\tvar maxTop = topMovement + me.drawingArea;\n\t\tvar maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea;\n\n\t\tme.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left);\n\t\tme.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop);\n\t},\n\n\tgetIndexAngle: function(index) {\n\t\tvar chart = this.chart;\n\t\tvar angleMultiplier = 360 / chart.data.labels.length;\n\t\tvar options = chart.options || {};\n\t\tvar startAngle = options.startAngle || 0;\n\n\t\t// Start from the top instead of right, so remove a quarter of the circle\n\t\tvar angle = (index * angleMultiplier + startAngle) % 360;\n\n\t\treturn (angle < 0 ? angle + 360 : angle) * Math.PI * 2 / 360;\n\t},\n\n\tgetDistanceFromCenterForValue: function(value) {\n\t\tvar me = this;\n\n\t\tif (helpers$1.isNullOrUndef(value)) {\n\t\t\treturn NaN;\n\t\t}\n\n\t\t// Take into account half font size + the yPadding of the top value\n\t\tvar scalingFactor = me.drawingArea / (me.max - me.min);\n\t\tif (me.options.ticks.reverse) {\n\t\t\treturn (me.max - value) * scalingFactor;\n\t\t}\n\t\treturn (value - me.min) * scalingFactor;\n\t},\n\n\tgetPointPosition: function(index, distanceFromCenter) {\n\t\tvar me = this;\n\t\tvar thisAngle = me.getIndexAngle(index) - (Math.PI / 2);\n\t\treturn {\n\t\t\tx: Math.cos(thisAngle) * distanceFromCenter + me.xCenter,\n\t\t\ty: Math.sin(thisAngle) * distanceFromCenter + me.yCenter\n\t\t};\n\t},\n\n\tgetPointPositionForValue: function(index, value) {\n\t\treturn this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n\t},\n\n\tgetBasePosition: function(index) {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\n\t\treturn me.getPointPositionForValue(index || 0,\n\t\t\tme.beginAtZero ? 0 :\n\t\t\tmin < 0 && max < 0 ? max :\n\t\t\tmin > 0 && max > 0 ? min :\n\t\t\t0);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawGrid: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar gridLineOpts = opts.gridLines;\n\t\tvar angleLineOpts = opts.angleLines;\n\t\tvar lineWidth = valueOrDefault$c(angleLineOpts.lineWidth, gridLineOpts.lineWidth);\n\t\tvar lineColor = valueOrDefault$c(angleLineOpts.color, gridLineOpts.color);\n\t\tvar i, offset, position;\n\n\t\tif (opts.pointLabels.display) {\n\t\t\tdrawPointLabels(me);\n\t\t}\n\n\t\tif (gridLineOpts.display) {\n\t\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\t\tif (index !== 0) {\n\t\t\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\t\t\t\t\tdrawRadiusLine(me, gridLineOpts, offset, index);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (angleLineOpts.display && lineWidth && lineColor) {\n\t\t\tctx.save();\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = lineColor;\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\tctx.setLineDash(resolve$4([angleLineOpts.borderDash, gridLineOpts.borderDash, []]));\n\t\t\t\tctx.lineDashOffset = resolve$4([angleLineOpts.borderDashOffset, gridLineOpts.borderDashOffset, 0.0]);\n\t\t\t}\n\n\t\t\tfor (i = me.chart.data.labels.length - 1; i >= 0; i--) {\n\t\t\t\toffset = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n\t\t\t\tposition = me.getPointPosition(i, offset);\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.moveTo(me.xCenter, me.yCenter);\n\t\t\t\tctx.lineTo(position.x, position.y);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawLabels: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\t\tvar tickOpts = opts.ticks;\n\n\t\tif (!tickOpts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar startAngle = me.getIndexAngle(0);\n\t\tvar tickFont = helpers$1.options._parseFont(tickOpts);\n\t\tvar tickFontColor = valueOrDefault$c(tickOpts.fontColor, core_defaults.global.defaultFontColor);\n\t\tvar offset, width;\n\n\t\tctx.save();\n\t\tctx.font = tickFont.string;\n\t\tctx.translate(me.xCenter, me.yCenter);\n\t\tctx.rotate(startAngle);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\thelpers$1.each(me.ticks, function(label, index) {\n\t\t\tif (index === 0 && !tickOpts.reverse) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\toffset = me.getDistanceFromCenterForValue(me.ticksAsNumbers[index]);\n\n\t\t\tif (tickOpts.showLabelBackdrop) {\n\t\t\t\twidth = ctx.measureText(label).width;\n\t\t\t\tctx.fillStyle = tickOpts.backdropColor;\n\n\t\t\t\tctx.fillRect(\n\t\t\t\t\t-width / 2 - tickOpts.backdropPaddingX,\n\t\t\t\t\t-offset - tickFont.size / 2 - tickOpts.backdropPaddingY,\n\t\t\t\t\twidth + tickOpts.backdropPaddingX * 2,\n\t\t\t\t\ttickFont.size + tickOpts.backdropPaddingY * 2\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tctx.fillStyle = tickFontColor;\n\t\t\tctx.fillText(label, 0, -offset);\n\t\t});\n\n\t\tctx.restore();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_drawTitle: helpers$1.noop\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$3 = defaultConfig$3;\nscale_radialLinear._defaults = _defaults$3;\n\nvar deprecated$1 = helpers$1._deprecated;\nvar resolve$5 = helpers$1.options.resolve;\nvar valueOrDefault$d = helpers$1.valueOrDefault;\n\n// Integer constants are from the ES6 spec.\nvar MIN_INTEGER = Number.MIN_SAFE_INTEGER || -9007199254740991;\nvar MAX_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\n\nvar INTERVALS = {\n\tmillisecond: {\n\t\tcommon: true,\n\t\tsize: 1,\n\t\tsteps: 1000\n\t},\n\tsecond: {\n\t\tcommon: true,\n\t\tsize: 1000,\n\t\tsteps: 60\n\t},\n\tminute: {\n\t\tcommon: true,\n\t\tsize: 60000,\n\t\tsteps: 60\n\t},\n\thour: {\n\t\tcommon: true,\n\t\tsize: 3600000,\n\t\tsteps: 24\n\t},\n\tday: {\n\t\tcommon: true,\n\t\tsize: 86400000,\n\t\tsteps: 30\n\t},\n\tweek: {\n\t\tcommon: false,\n\t\tsize: 604800000,\n\t\tsteps: 4\n\t},\n\tmonth: {\n\t\tcommon: true,\n\t\tsize: 2.628e9,\n\t\tsteps: 12\n\t},\n\tquarter: {\n\t\tcommon: false,\n\t\tsize: 7.884e9,\n\t\tsteps: 4\n\t},\n\tyear: {\n\t\tcommon: true,\n\t\tsize: 3.154e10\n\t}\n};\n\nvar UNITS = Object.keys(INTERVALS);\n\nfunction sorter(a, b) {\n\treturn a - b;\n}\n\nfunction arrayUnique(items) {\n\tvar hash = {};\n\tvar out = [];\n\tvar i, ilen, item;\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\titem = items[i];\n\t\tif (!hash[item]) {\n\t\t\thash[item] = true;\n\t\t\tout.push(item);\n\t\t}\n\t}\n\n\treturn out;\n}\n\nfunction getMin(options) {\n\treturn helpers$1.valueOrDefault(options.time.min, options.ticks.min);\n}\n\nfunction getMax(options) {\n\treturn helpers$1.valueOrDefault(options.time.max, options.ticks.max);\n}\n\n/**\n * Returns an array of {time, pos} objects used to interpolate a specific `time` or position\n * (`pos`) on the scale, by searching entries before and after the requested value. `pos` is\n * a decimal between 0 and 1: 0 being the start of the scale (left or top) and 1 the other\n * extremity (left + width or top + height). Note that it would be more optimized to directly\n * store pre-computed pixels, but the scale dimensions are not guaranteed at the time we need\n * to create the lookup table. The table ALWAYS contains at least two items: min and max.\n *\n * @param {number[]} timestamps - timestamps sorted from lowest to highest.\n * @param {string} distribution - If 'linear', timestamps will be spread linearly along the min\n * and max range, so basically, the table will contains only two items: {min, 0} and {max, 1}.\n * If 'series', timestamps will be positioned at the same distance from each other. In this\n * case, only timestamps that break the time linearity are registered, meaning that in the\n * best case, all timestamps are linear, the table contains only min and max.\n */\nfunction buildLookupTable(timestamps, min, max, distribution) {\n\tif (distribution === 'linear' || !timestamps.length) {\n\t\treturn [\n\t\t\t{time: min, pos: 0},\n\t\t\t{time: max, pos: 1}\n\t\t];\n\t}\n\n\tvar table = [];\n\tvar items = [min];\n\tvar i, ilen, prev, curr, next;\n\n\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\tcurr = timestamps[i];\n\t\tif (curr > min && curr < max) {\n\t\t\titems.push(curr);\n\t\t}\n\t}\n\n\titems.push(max);\n\n\tfor (i = 0, ilen = items.length; i < ilen; ++i) {\n\t\tnext = items[i + 1];\n\t\tprev = items[i - 1];\n\t\tcurr = items[i];\n\n\t\t// only add points that breaks the scale linearity\n\t\tif (prev === undefined || next === undefined || Math.round((next + prev) / 2) !== curr) {\n\t\t\ttable.push({time: curr, pos: i / (ilen - 1)});\n\t\t}\n\t}\n\n\treturn table;\n}\n\n// @see adapted from https://www.anujgakhar.com/2014/03/01/binary-search-in-javascript/\nfunction lookup(table, key, value) {\n\tvar lo = 0;\n\tvar hi = table.length - 1;\n\tvar mid, i0, i1;\n\n\twhile (lo >= 0 && lo <= hi) {\n\t\tmid = (lo + hi) >> 1;\n\t\ti0 = table[mid - 1] || null;\n\t\ti1 = table[mid];\n\n\t\tif (!i0) {\n\t\t\t// given value is outside table (before first item)\n\t\t\treturn {lo: null, hi: i1};\n\t\t} else if (i1[key] < value) {\n\t\t\tlo = mid + 1;\n\t\t} else if (i0[key] > value) {\n\t\t\thi = mid - 1;\n\t\t} else {\n\t\t\treturn {lo: i0, hi: i1};\n\t\t}\n\t}\n\n\t// given value is outside table (after last item)\n\treturn {lo: i1, hi: null};\n}\n\n/**\n * Linearly interpolates the given source `value` using the table items `skey` values and\n * returns the associated `tkey` value. For example, interpolate(table, 'time', 42, 'pos')\n * returns the position for a timestamp equal to 42. If value is out of bounds, values at\n * index [0, 1] or [n - 1, n] are used for the interpolation.\n */\nfunction interpolate$1(table, skey, sval, tkey) {\n\tvar range = lookup(table, skey, sval);\n\n\t// Note: the lookup table ALWAYS contains at least 2 items (min and max)\n\tvar prev = !range.lo ? table[0] : !range.hi ? table[table.length - 2] : range.lo;\n\tvar next = !range.lo ? table[1] : !range.hi ? table[table.length - 1] : range.hi;\n\n\tvar span = next[skey] - prev[skey];\n\tvar ratio = span ? (sval - prev[skey]) / span : 0;\n\tvar offset = (next[tkey] - prev[tkey]) * ratio;\n\n\treturn prev[tkey] + offset;\n}\n\nfunction toTimestamp(scale, input) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options.time;\n\tvar parser = options.parser;\n\tvar format = parser || options.format;\n\tvar value = input;\n\n\tif (typeof parser === 'function') {\n\t\tvalue = parser(value);\n\t}\n\n\t// Only parse if its not a timestamp already\n\tif (!helpers$1.isFinite(value)) {\n\t\tvalue = typeof format === 'string'\n\t\t\t? adapter.parse(value, format)\n\t\t\t: adapter.parse(value);\n\t}\n\n\tif (value !== null) {\n\t\treturn +value;\n\t}\n\n\t// Labels are in an incompatible format and no `parser` has been provided.\n\t// The user might still use the deprecated `format` option for parsing.\n\tif (!parser && typeof format === 'function') {\n\t\tvalue = format(input);\n\n\t\t// `format` could return something else than a timestamp, if so, parse it\n\t\tif (!helpers$1.isFinite(value)) {\n\t\t\tvalue = adapter.parse(value);\n\t\t}\n\t}\n\n\treturn value;\n}\n\nfunction parse(scale, input) {\n\tif (helpers$1.isNullOrUndef(input)) {\n\t\treturn null;\n\t}\n\n\tvar options = scale.options.time;\n\tvar value = toTimestamp(scale, scale.getRightValue(input));\n\tif (value === null) {\n\t\treturn value;\n\t}\n\n\tif (options.round) {\n\t\tvalue = +scale._adapter.startOf(value, options.round);\n\t}\n\n\treturn value;\n}\n\n/**\n * Figures out what unit results in an appropriate number of auto-generated ticks\n */\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n\tvar ilen = UNITS.length;\n\tvar i, interval, factor;\n\n\tfor (i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n\t\tinterval = INTERVALS[UNITS[i]];\n\t\tfactor = interval.steps ? interval.steps : MAX_INTEGER;\n\n\t\tif (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n\n\treturn UNITS[ilen - 1];\n}\n\n/**\n * Figures out what unit to format a set of ticks with\n */\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n\tvar i, unit;\n\n\tfor (i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n\t\tunit = UNITS[i];\n\t\tif (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n\t\t\treturn unit;\n\t\t}\n\t}\n\n\treturn UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n\nfunction determineMajorUnit(unit) {\n\tfor (var i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n\t\tif (INTERVALS[UNITS[i]].common) {\n\t\t\treturn UNITS[i];\n\t\t}\n\t}\n}\n\n/**\n * Generates a maximum of `capacity` timestamps between min and max, rounded to the\n * `minor` unit using the given scale time `options`.\n * Important: this method can return ticks outside the min and max range, it's the\n * responsibility of the calling code to clamp values if needed.\n */\nfunction generate(scale, min, max, capacity) {\n\tvar adapter = scale._adapter;\n\tvar options = scale.options;\n\tvar timeOpts = options.time;\n\tvar minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, capacity);\n\tvar stepSize = resolve$5([timeOpts.stepSize, timeOpts.unitStepSize, 1]);\n\tvar weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n\tvar first = min;\n\tvar ticks = [];\n\tvar time;\n\n\t// For 'week' unit, handle the first day of week option\n\tif (weekday) {\n\t\tfirst = +adapter.startOf(first, 'isoWeek', weekday);\n\t}\n\n\t// Align first ticks on unit\n\tfirst = +adapter.startOf(first, weekday ? 'day' : minor);\n\n\t// Prevent browser from freezing in case user options request millions of milliseconds\n\tif (adapter.diff(max, min, minor) > 100000 * stepSize) {\n\t\tthrow min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor;\n\t}\n\n\tfor (time = first; time < max; time = +adapter.add(time, stepSize, minor)) {\n\t\tticks.push(time);\n\t}\n\n\tif (time === max || options.bounds === 'ticks') {\n\t\tticks.push(time);\n\t}\n\n\treturn ticks;\n}\n\n/**\n * Returns the start and end offsets from edges in the form of {start, end}\n * where each value is a relative width to the scale and ranges between 0 and 1.\n * They add extra margins on the both sides by scaling down the original scale.\n * Offsets are added when the `offset` option is true.\n */\nfunction computeOffsets(table, ticks, min, max, options) {\n\tvar start = 0;\n\tvar end = 0;\n\tvar first, last;\n\n\tif (options.offset && ticks.length) {\n\t\tfirst = interpolate$1(table, 'time', ticks[0], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tstart = 1 - first;\n\t\t} else {\n\t\t\tstart = (interpolate$1(table, 'time', ticks[1], 'pos') - first) / 2;\n\t\t}\n\t\tlast = interpolate$1(table, 'time', ticks[ticks.length - 1], 'pos');\n\t\tif (ticks.length === 1) {\n\t\t\tend = last;\n\t\t} else {\n\t\t\tend = (last - interpolate$1(table, 'time', ticks[ticks.length - 2], 'pos')) / 2;\n\t\t}\n\t}\n\n\treturn {start: start, end: end, factor: 1 / (start + 1 + end)};\n}\n\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n\tvar adapter = scale._adapter;\n\tvar first = +adapter.startOf(ticks[0].value, majorUnit);\n\tvar last = ticks[ticks.length - 1].value;\n\tvar major, index;\n\n\tfor (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n\t\tindex = map[major];\n\t\tif (index >= 0) {\n\t\t\tticks[index].major = true;\n\t\t}\n\t}\n\treturn ticks;\n}\n\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n\tvar ticks = [];\n\tvar map = {};\n\tvar ilen = values.length;\n\tvar i, value;\n\n\tfor (i = 0; i < ilen; ++i) {\n\t\tvalue = values[i];\n\t\tmap[value] = i;\n\n\t\tticks.push({\n\t\t\tvalue: value,\n\t\t\tmajor: false\n\t\t});\n\t}\n\n\t// We set the major ticks separately from the above loop because calling startOf for every tick\n\t// is expensive when there is a large number of ticks\n\treturn (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\n\nvar defaultConfig$4 = {\n\tposition: 'bottom',\n\n\t/**\n\t * Data distribution along the scale:\n\t * - 'linear': data are spread according to their time (distances can vary),\n\t * - 'series': data are spread at the same distance from each other.\n\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t * @since 2.7.0\n\t */\n\tdistribution: 'linear',\n\n\t/**\n\t * Scale boundary strategy (bypassed by min/max time options)\n\t * - `data`: make sure data are fully visible, ticks outside are removed\n\t * - `ticks`: make sure ticks are fully visible, data outside are truncated\n\t * @see https://github.com/chartjs/Chart.js/pull/4556\n\t * @since 2.7.0\n\t */\n\tbounds: 'data',\n\n\tadapters: {},\n\ttime: {\n\t\tparser: false, // false == a pattern string from https://momentjs.com/docs/#/parsing/string-format/ or a custom callback that converts its argument to a moment\n\t\tunit: false, // false == automatic or override with week, month, year, etc.\n\t\tround: false, // none, or override with week, month, year, etc.\n\t\tdisplayFormat: false, // DEPRECATED\n\t\tisoWeekday: false, // override week start day - see https://momentjs.com/docs/#/get-set/iso-weekday/\n\t\tminUnit: 'millisecond',\n\t\tdisplayFormats: {}\n\t},\n\tticks: {\n\t\tautoSkip: false,\n\n\t\t/**\n\t\t * Ticks generation input values:\n\t\t * - 'auto': generates \"optimal\" ticks based on scale size and time options.\n\t\t * - 'data': generates ticks from data (including labels from data {t|x|y} objects).\n\t\t * - 'labels': generates ticks from user given `data.labels` values ONLY.\n\t\t * @see https://github.com/chartjs/Chart.js/pull/4507\n\t\t * @since 2.7.0\n\t\t */\n\t\tsource: 'auto',\n\n\t\tmajor: {\n\t\t\tenabled: false\n\t\t}\n\t}\n};\n\nvar scale_time = core_scale.extend({\n\tinitialize: function() {\n\t\tthis.mergeTicksOptions();\n\t\tcore_scale.prototype.initialize.call(this);\n\t},\n\n\tupdate: function() {\n\t\tvar me = this;\n\t\tvar options = me.options;\n\t\tvar time = options.time || (options.time = {});\n\t\tvar adapter = me._adapter = new core_adapters._date(options.adapters.date);\n\n\t\t// DEPRECATIONS: output a message only one time per update\n\t\tdeprecated$1('time scale', time.format, 'time.format', 'time.parser');\n\t\tdeprecated$1('time scale', time.min, 'time.min', 'ticks.min');\n\t\tdeprecated$1('time scale', time.max, 'time.max', 'ticks.max');\n\n\t\t// Backward compatibility: before introducing adapter, `displayFormats` was\n\t\t// supposed to contain *all* unit/string pairs but this can't be resolved\n\t\t// when loading the scale (adapters are loaded afterward), so let's populate\n\t\t// missing formats on update\n\t\thelpers$1.mergeIf(time.displayFormats, adapter.formats());\n\n\t\treturn core_scale.prototype.update.apply(me, arguments);\n\t},\n\n\t/**\n\t * Allows data to be referenced via 't' attribute\n\t */\n\tgetRightValue: function(rawValue) {\n\t\tif (rawValue && rawValue.t !== undefined) {\n\t\t\trawValue = rawValue.t;\n\t\t}\n\t\treturn core_scale.prototype.getRightValue.call(this, rawValue);\n\t},\n\n\tdetermineDataLimits: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar unit = options.time.unit || 'day';\n\t\tvar min = MAX_INTEGER;\n\t\tvar max = MIN_INTEGER;\n\t\tvar timestamps = [];\n\t\tvar datasets = [];\n\t\tvar labels = [];\n\t\tvar i, j, ilen, jlen, data, timestamp, labelsAdded;\n\t\tvar dataLabels = me._getLabels();\n\n\t\tfor (i = 0, ilen = dataLabels.length; i < ilen; ++i) {\n\t\t\tlabels.push(parse(me, dataLabels[i]));\n\t\t}\n\n\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\tdata = chart.data.datasets[i].data;\n\n\t\t\t\t// Let's consider that all data have the same format.\n\t\t\t\tif (helpers$1.isObject(data[0])) {\n\t\t\t\t\tdatasets[i] = [];\n\n\t\t\t\t\tfor (j = 0, jlen = data.length; j < jlen; ++j) {\n\t\t\t\t\t\ttimestamp = parse(me, data[j]);\n\t\t\t\t\t\ttimestamps.push(timestamp);\n\t\t\t\t\t\tdatasets[i][j] = timestamp;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tdatasets[i] = labels.slice(0);\n\t\t\t\t\tif (!labelsAdded) {\n\t\t\t\t\t\ttimestamps = timestamps.concat(labels);\n\t\t\t\t\t\tlabelsAdded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdatasets[i] = [];\n\t\t\t}\n\t\t}\n\n\t\tif (labels.length) {\n\t\t\tmin = Math.min(min, labels[0]);\n\t\t\tmax = Math.max(max, labels[labels.length - 1]);\n\t\t}\n\n\t\tif (timestamps.length) {\n\t\t\ttimestamps = ilen > 1 ? arrayUnique(timestamps).sort(sorter) : timestamps.sort(sorter);\n\t\t\tmin = Math.min(min, timestamps[0]);\n\t\t\tmax = Math.max(max, timestamps[timestamps.length - 1]);\n\t\t}\n\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// In case there is no valid min/max, set limits based on unit time option\n\t\tmin = min === MAX_INTEGER ? +adapter.startOf(Date.now(), unit) : min;\n\t\tmax = max === MIN_INTEGER ? +adapter.endOf(Date.now(), unit) + 1 : max;\n\n\t\t// Make sure that max is strictly higher than min (required by the lookup table)\n\t\tme.min = Math.min(min, max);\n\t\tme.max = Math.max(min + 1, max);\n\n\t\t// PRIVATE\n\t\tme._table = [];\n\t\tme._timestamps = {\n\t\t\tdata: timestamps,\n\t\t\tdatasets: datasets,\n\t\t\tlabels: labels\n\t\t};\n\t},\n\n\tbuildTicks: function() {\n\t\tvar me = this;\n\t\tvar min = me.min;\n\t\tvar max = me.max;\n\t\tvar options = me.options;\n\t\tvar tickOpts = options.ticks;\n\t\tvar timeOpts = options.time;\n\t\tvar timestamps = me._timestamps;\n\t\tvar ticks = [];\n\t\tvar capacity = me.getLabelCapacity(min);\n\t\tvar source = tickOpts.source;\n\t\tvar distribution = options.distribution;\n\t\tvar i, ilen, timestamp;\n\n\t\tif (source === 'data' || (source === 'auto' && distribution === 'series')) {\n\t\t\ttimestamps = timestamps.data;\n\t\t} else if (source === 'labels') {\n\t\t\ttimestamps = timestamps.labels;\n\t\t} else {\n\t\t\ttimestamps = generate(me, min, max, capacity);\n\t\t}\n\n\t\tif (options.bounds === 'ticks' && timestamps.length) {\n\t\t\tmin = timestamps[0];\n\t\t\tmax = timestamps[timestamps.length - 1];\n\t\t}\n\n\t\t// Enforce limits with user min/max options\n\t\tmin = parse(me, getMin(options)) || min;\n\t\tmax = parse(me, getMax(options)) || max;\n\n\t\t// Remove ticks outside the min/max range\n\t\tfor (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n\t\t\ttimestamp = timestamps[i];\n\t\t\tif (timestamp >= min && timestamp <= max) {\n\t\t\t\tticks.push(timestamp);\n\t\t\t}\n\t\t}\n\n\t\tme.min = min;\n\t\tme.max = max;\n\n\t\t// PRIVATE\n\t\t// determineUnitForFormatting relies on the number of ticks so we don't use it when\n\t\t// autoSkip is enabled because we don't yet know what the final number of ticks will be\n\t\tme._unit = timeOpts.unit || (tickOpts.autoSkip\n\t\t\t? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, capacity)\n\t\t\t: determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n\t\tme._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined\n\t\t\t: determineMajorUnit(me._unit);\n\t\tme._table = buildLookupTable(me._timestamps.data, min, max, distribution);\n\t\tme._offsets = computeOffsets(me._table, ticks, min, max, options);\n\n\t\tif (tickOpts.reverse) {\n\t\t\tticks.reverse();\n\t\t}\n\n\t\treturn ticksFromTimestamps(me, ticks, me._majorUnit);\n\t},\n\n\tgetLabelForIndex: function(index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar data = me.chart.data;\n\t\tvar timeOpts = me.options.time;\n\t\tvar label = data.labels && index < data.labels.length ? data.labels[index] : '';\n\t\tvar value = data.datasets[datasetIndex].data[index];\n\n\t\tif (helpers$1.isObject(value)) {\n\t\t\tlabel = me.getRightValue(value);\n\t\t}\n\t\tif (timeOpts.tooltipFormat) {\n\t\t\treturn adapter.format(toTimestamp(me, label), timeOpts.tooltipFormat);\n\t\t}\n\t\tif (typeof label === 'string') {\n\t\t\treturn label;\n\t\t}\n\t\treturn adapter.format(toTimestamp(me, label), timeOpts.displayFormats.datetime);\n\t},\n\n\t/**\n\t * Function to format an individual tick mark\n\t * @private\n\t */\n\ttickFormatFunction: function(time, index, ticks, format) {\n\t\tvar me = this;\n\t\tvar adapter = me._adapter;\n\t\tvar options = me.options;\n\t\tvar formats = options.time.displayFormats;\n\t\tvar minorFormat = formats[me._unit];\n\t\tvar majorUnit = me._majorUnit;\n\t\tvar majorFormat = formats[majorUnit];\n\t\tvar tick = ticks[index];\n\t\tvar tickOpts = options.ticks;\n\t\tvar major = majorUnit && majorFormat && tick && tick.major;\n\t\tvar label = adapter.format(time, format ? format : major ? majorFormat : minorFormat);\n\t\tvar nestedTickOpts = major ? tickOpts.major : tickOpts.minor;\n\t\tvar formatter = resolve$5([\n\t\t\tnestedTickOpts.callback,\n\t\t\tnestedTickOpts.userCallback,\n\t\t\ttickOpts.callback,\n\t\t\ttickOpts.userCallback\n\t\t]);\n\n\t\treturn formatter ? formatter(label, index, ticks) : label;\n\t},\n\n\tconvertTicksToLabels: function(ticks) {\n\t\tvar labels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = ticks.length; i < ilen; ++i) {\n\t\t\tlabels.push(this.tickFormatFunction(ticks[i].value, i, ticks));\n\t\t}\n\n\t\treturn labels;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetPixelForOffset: function(time) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = interpolate$1(me._table, 'time', time, 'pos');\n\t\treturn me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n\t},\n\n\tgetPixelForValue: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar time = null;\n\n\t\tif (index !== undefined && datasetIndex !== undefined) {\n\t\t\ttime = me._timestamps.datasets[datasetIndex][index];\n\t\t}\n\n\t\tif (time === null) {\n\t\t\ttime = parse(me, value);\n\t\t}\n\n\t\tif (time !== null) {\n\t\t\treturn me.getPixelForOffset(time);\n\t\t}\n\t},\n\n\tgetPixelForTick: function(index) {\n\t\tvar ticks = this.getTicks();\n\t\treturn index >= 0 && index < ticks.length ?\n\t\t\tthis.getPixelForOffset(ticks[index].value) :\n\t\t\tnull;\n\t},\n\n\tgetValueForPixel: function(pixel) {\n\t\tvar me = this;\n\t\tvar offsets = me._offsets;\n\t\tvar pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n\t\tvar time = interpolate$1(me._table, 'pos', pos, 'time');\n\n\t\t// DEPRECATION, we should return time directly\n\t\treturn me._adapter._create(time);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLabelSize: function(label) {\n\t\tvar me = this;\n\t\tvar ticksOpts = me.options.ticks;\n\t\tvar tickLabelWidth = me.ctx.measureText(label).width;\n\t\tvar angle = helpers$1.toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n\t\tvar cosRotation = Math.cos(angle);\n\t\tvar sinRotation = Math.sin(angle);\n\t\tvar tickFontSize = valueOrDefault$d(ticksOpts.fontSize, core_defaults.global.defaultFontSize);\n\n\t\treturn {\n\t\t\tw: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n\t\t\th: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n\t\t};\n\t},\n\n\t/**\n\t * Crude approximation of what the label width might be\n\t * @private\n\t */\n\tgetLabelWidth: function(label) {\n\t\treturn this._getLabelSize(label).w;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetLabelCapacity: function(exampleTime) {\n\t\tvar me = this;\n\t\tvar timeOpts = me.options.time;\n\t\tvar displayFormats = timeOpts.displayFormats;\n\n\t\t// pick the longest format (milliseconds) for guestimation\n\t\tvar format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n\t\tvar exampleLabel = me.tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n\t\tvar size = me._getLabelSize(exampleLabel);\n\t\tvar capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h);\n\n\t\tif (me.options.offset) {\n\t\t\tcapacity--;\n\t\t}\n\n\t\treturn capacity > 0 ? capacity : 1;\n\t}\n});\n\n// INTERNAL: static default options, registered in src/index.js\nvar _defaults$4 = defaultConfig$4;\nscale_time._defaults = _defaults$4;\n\nvar scales = {\n\tcategory: scale_category,\n\tlinear: scale_linear,\n\tlogarithmic: scale_logarithmic,\n\tradialLinear: scale_radialLinear,\n\ttime: scale_time\n};\n\nvar FORMATS = {\n\tdatetime: 'MMM D, YYYY, h:mm:ss a',\n\tmillisecond: 'h:mm:ss.SSS a',\n\tsecond: 'h:mm:ss a',\n\tminute: 'h:mm a',\n\thour: 'hA',\n\tday: 'MMM D',\n\tweek: 'll',\n\tmonth: 'MMM YYYY',\n\tquarter: '[Q]Q - YYYY',\n\tyear: 'YYYY'\n};\n\ncore_adapters._date.override(typeof moment === 'function' ? {\n\t_id: 'moment', // DEBUG ONLY\n\n\tformats: function() {\n\t\treturn FORMATS;\n\t},\n\n\tparse: function(value, format) {\n\t\tif (typeof value === 'string' && typeof format === 'string') {\n\t\t\tvalue = moment(value, format);\n\t\t} else if (!(value instanceof moment)) {\n\t\t\tvalue = moment(value);\n\t\t}\n\t\treturn value.isValid() ? value.valueOf() : null;\n\t},\n\n\tformat: function(time, format) {\n\t\treturn moment(time).format(format);\n\t},\n\n\tadd: function(time, amount, unit) {\n\t\treturn moment(time).add(amount, unit).valueOf();\n\t},\n\n\tdiff: function(max, min, unit) {\n\t\treturn moment(max).diff(moment(min), unit);\n\t},\n\n\tstartOf: function(time, unit, weekday) {\n\t\ttime = moment(time);\n\t\tif (unit === 'isoWeek') {\n\t\t\treturn time.isoWeekday(weekday).valueOf();\n\t\t}\n\t\treturn time.startOf(unit).valueOf();\n\t},\n\n\tendOf: function(time, unit) {\n\t\treturn moment(time).endOf(unit).valueOf();\n\t},\n\n\t// DEPRECATIONS\n\n\t/**\n\t * Provided for backward compatibility with scale.getValueForPixel().\n\t * @deprecated since version 2.8.0\n\t * @todo remove at version 3\n\t * @private\n\t */\n\t_create: function(time) {\n\t\treturn moment(time);\n\t},\n} : {});\n\ncore_defaults._set('global', {\n\tplugins: {\n\t\tfiller: {\n\t\t\tpropagate: true\n\t\t}\n\t}\n});\n\nvar mappers = {\n\tdataset: function(source) {\n\t\tvar index = source.fill;\n\t\tvar chart = source.chart;\n\t\tvar meta = chart.getDatasetMeta(index);\n\t\tvar visible = meta && chart.isDatasetVisible(index);\n\t\tvar points = (visible && meta.dataset._children) || [];\n\t\tvar length = points.length || 0;\n\n\t\treturn !length ? null : function(point, i) {\n\t\t\treturn (i < length && points[i]._view) || null;\n\t\t};\n\t},\n\n\tboundary: function(source) {\n\t\tvar boundary = source.boundary;\n\t\tvar x = boundary ? boundary.x : null;\n\t\tvar y = boundary ? boundary.y : null;\n\n\t\tif (helpers$1.isArray(boundary)) {\n\t\t\treturn function(point, i) {\n\t\t\t\treturn boundary[i];\n\t\t\t};\n\t\t}\n\n\t\treturn function(point) {\n\t\t\treturn {\n\t\t\t\tx: x === null ? point.x : x,\n\t\t\t\ty: y === null ? point.y : y,\n\t\t\t};\n\t\t};\n\t}\n};\n\n// @todo if (fill[0] === '#')\nfunction decodeFill(el, index, count) {\n\tvar model = el._model || {};\n\tvar fill = model.fill;\n\tvar target;\n\n\tif (fill === undefined) {\n\t\tfill = !!model.backgroundColor;\n\t}\n\n\tif (fill === false || fill === null) {\n\t\treturn false;\n\t}\n\n\tif (fill === true) {\n\t\treturn 'origin';\n\t}\n\n\ttarget = parseFloat(fill, 10);\n\tif (isFinite(target) && Math.floor(target) === target) {\n\t\tif (fill[0] === '-' || fill[0] === '+') {\n\t\t\ttarget = index + target;\n\t\t}\n\n\t\tif (target === index || target < 0 || target >= count) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn target;\n\t}\n\n\tswitch (fill) {\n\t// compatibility\n\tcase 'bottom':\n\t\treturn 'start';\n\tcase 'top':\n\t\treturn 'end';\n\tcase 'zero':\n\t\treturn 'origin';\n\t// supported boundaries\n\tcase 'origin':\n\tcase 'start':\n\tcase 'end':\n\t\treturn fill;\n\t// invalid fill values\n\tdefault:\n\t\treturn false;\n\t}\n}\n\nfunction computeLinearBoundary(source) {\n\tvar model = source.el._model || {};\n\tvar scale = source.el._scale || {};\n\tvar fill = source.fill;\n\tvar target = null;\n\tvar horizontal;\n\n\tif (isFinite(fill)) {\n\t\treturn null;\n\t}\n\n\t// Backward compatibility: until v3, we still need to support boundary values set on\n\t// the model (scaleTop, scaleBottom and scaleZero) because some external plugins and\n\t// controllers might still use it (e.g. the Smith chart).\n\n\tif (fill === 'start') {\n\t\ttarget = model.scaleBottom === undefined ? scale.bottom : model.scaleBottom;\n\t} else if (fill === 'end') {\n\t\ttarget = model.scaleTop === undefined ? scale.top : model.scaleTop;\n\t} else if (model.scaleZero !== undefined) {\n\t\ttarget = model.scaleZero;\n\t} else if (scale.getBasePixel) {\n\t\ttarget = scale.getBasePixel();\n\t}\n\n\tif (target !== undefined && target !== null) {\n\t\tif (target.x !== undefined && target.y !== undefined) {\n\t\t\treturn target;\n\t\t}\n\n\t\tif (helpers$1.isFinite(target)) {\n\t\t\thorizontal = scale.isHorizontal();\n\t\t\treturn {\n\t\t\t\tx: horizontal ? target : null,\n\t\t\t\ty: horizontal ? null : target\n\t\t\t};\n\t\t}\n\t}\n\n\treturn null;\n}\n\nfunction computeCircularBoundary(source) {\n\tvar scale = source.el._scale;\n\tvar options = scale.options;\n\tvar length = scale.chart.data.labels.length;\n\tvar fill = source.fill;\n\tvar target = [];\n\tvar start, end, center, i, point;\n\n\tif (!length) {\n\t\treturn null;\n\t}\n\n\tstart = options.ticks.reverse ? scale.max : scale.min;\n\tend = options.ticks.reverse ? scale.min : scale.max;\n\tcenter = scale.getPointPositionForValue(0, start);\n\tfor (i = 0; i < length; ++i) {\n\t\tpoint = fill === 'start' || fill === 'end'\n\t\t\t? scale.getPointPositionForValue(i, fill === 'start' ? start : end)\n\t\t\t: scale.getBasePosition(i);\n\t\tif (options.gridLines.circular) {\n\t\t\tpoint.cx = center.x;\n\t\t\tpoint.cy = center.y;\n\t\t\tpoint.angle = scale.getIndexAngle(i) - Math.PI / 2;\n\t\t}\n\t\ttarget.push(point);\n\t}\n\treturn target;\n}\n\nfunction computeBoundary(source) {\n\tvar scale = source.el._scale || {};\n\n\tif (scale.getPointPositionForValue) {\n\t\treturn computeCircularBoundary(source);\n\t}\n\treturn computeLinearBoundary(source);\n}\n\nfunction resolveTarget(sources, index, propagate) {\n\tvar source = sources[index];\n\tvar fill = source.fill;\n\tvar visited = [index];\n\tvar target;\n\n\tif (!propagate) {\n\t\treturn fill;\n\t}\n\n\twhile (fill !== false && visited.indexOf(fill) === -1) {\n\t\tif (!isFinite(fill)) {\n\t\t\treturn fill;\n\t\t}\n\n\t\ttarget = sources[fill];\n\t\tif (!target) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (target.visible) {\n\t\t\treturn fill;\n\t\t}\n\n\t\tvisited.push(fill);\n\t\tfill = target.fill;\n\t}\n\n\treturn false;\n}\n\nfunction createMapper(source) {\n\tvar fill = source.fill;\n\tvar type = 'dataset';\n\n\tif (fill === false) {\n\t\treturn null;\n\t}\n\n\tif (!isFinite(fill)) {\n\t\ttype = 'boundary';\n\t}\n\n\treturn mappers[type](source);\n}\n\nfunction isDrawable(point) {\n\treturn point && !point.skip;\n}\n\nfunction drawArea(ctx, curve0, curve1, len0, len1) {\n\tvar i, cx, cy, r;\n\n\tif (!len0 || !len1) {\n\t\treturn;\n\t}\n\n\t// building first area curve (normal)\n\tctx.moveTo(curve0[0].x, curve0[0].y);\n\tfor (i = 1; i < len0; ++i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve0[i - 1], curve0[i]);\n\t}\n\n\tif (curve1[0].angle !== undefined) {\n\t\tcx = curve1[0].cx;\n\t\tcy = curve1[0].cy;\n\t\tr = Math.sqrt(Math.pow(curve1[0].x - cx, 2) + Math.pow(curve1[0].y - cy, 2));\n\t\tfor (i = len1 - 1; i > 0; --i) {\n\t\t\tctx.arc(cx, cy, r, curve1[i].angle, curve1[i - 1].angle, true);\n\t\t}\n\t\treturn;\n\t}\n\n\t// joining the two area curves\n\tctx.lineTo(curve1[len1 - 1].x, curve1[len1 - 1].y);\n\n\t// building opposite area curve (reverse)\n\tfor (i = len1 - 1; i > 0; --i) {\n\t\thelpers$1.canvas.lineTo(ctx, curve1[i], curve1[i - 1], true);\n\t}\n}\n\nfunction doFill(ctx, points, mapper, view, color, loop) {\n\tvar count = points.length;\n\tvar span = view.spanGaps;\n\tvar curve0 = [];\n\tvar curve1 = [];\n\tvar len0 = 0;\n\tvar len1 = 0;\n\tvar i, ilen, index, p0, p1, d0, d1, loopOffset;\n\n\tctx.beginPath();\n\n\tfor (i = 0, ilen = count; i < ilen; ++i) {\n\t\tindex = i % count;\n\t\tp0 = points[index]._view;\n\t\tp1 = mapper(p0, index, view);\n\t\td0 = isDrawable(p0);\n\t\td1 = isDrawable(p1);\n\n\t\tif (loop && loopOffset === undefined && d0) {\n\t\t\tloopOffset = i + 1;\n\t\t\tilen = count + loopOffset;\n\t\t}\n\n\t\tif (d0 && d1) {\n\t\t\tlen0 = curve0.push(p0);\n\t\t\tlen1 = curve1.push(p1);\n\t\t} else if (len0 && len1) {\n\t\t\tif (!span) {\n\t\t\t\tdrawArea(ctx, curve0, curve1, len0, len1);\n\t\t\t\tlen0 = len1 = 0;\n\t\t\t\tcurve0 = [];\n\t\t\t\tcurve1 = [];\n\t\t\t} else {\n\t\t\t\tif (d0) {\n\t\t\t\t\tcurve0.push(p0);\n\t\t\t\t}\n\t\t\t\tif (d1) {\n\t\t\t\t\tcurve1.push(p1);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tdrawArea(ctx, curve0, curve1, len0, len1);\n\n\tctx.closePath();\n\tctx.fillStyle = color;\n\tctx.fill();\n}\n\nvar plugin_filler = {\n\tid: 'filler',\n\n\tafterDatasetsUpdate: function(chart, options) {\n\t\tvar count = (chart.data.datasets || []).length;\n\t\tvar propagate = options.propagate;\n\t\tvar sources = [];\n\t\tvar meta, i, el, source;\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\tel = meta.dataset;\n\t\t\tsource = null;\n\n\t\t\tif (el && el._model && el instanceof elements.Line) {\n\t\t\t\tsource = {\n\t\t\t\t\tvisible: chart.isDatasetVisible(i),\n\t\t\t\t\tfill: decodeFill(el, i, count),\n\t\t\t\t\tchart: chart,\n\t\t\t\t\tel: el\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tmeta.$filler = source;\n\t\t\tsources.push(source);\n\t\t}\n\n\t\tfor (i = 0; i < count; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!source) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.fill = resolveTarget(sources, i, propagate);\n\t\t\tsource.boundary = computeBoundary(source);\n\t\t\tsource.mapper = createMapper(source);\n\t\t}\n\t},\n\n\tbeforeDatasetsDraw: function(chart) {\n\t\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\t\tvar ctx = chart.ctx;\n\t\tvar meta, i, el, view, points, mapper, color;\n\n\t\tfor (i = metasets.length - 1; i >= 0; --i) {\n\t\t\tmeta = metasets[i].$filler;\n\n\t\t\tif (!meta || !meta.visible) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tel = meta.el;\n\t\t\tview = el._view;\n\t\t\tpoints = el._children || [];\n\t\t\tmapper = meta.mapper;\n\t\t\tcolor = view.backgroundColor || core_defaults.global.defaultColor;\n\n\t\t\tif (mapper && color && points.length) {\n\t\t\t\thelpers$1.canvas.clipArea(ctx, chart.chartArea);\n\t\t\t\tdoFill(ctx, points, mapper, view, color, el._loop);\n\t\t\t\thelpers$1.canvas.unclipArea(ctx);\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar getRtlHelper$1 = helpers$1.rtl.getRtlAdapter;\nvar noop$1 = helpers$1.noop;\nvar valueOrDefault$e = helpers$1.valueOrDefault;\n\ncore_defaults._set('global', {\n\tlegend: {\n\t\tdisplay: true,\n\t\tposition: 'top',\n\t\talign: 'center',\n\t\tfullWidth: true,\n\t\treverse: false,\n\t\tweight: 1000,\n\n\t\t// a callback that will handle\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.datasetIndex;\n\t\t\tvar ci = this.chart;\n\t\t\tvar meta = ci.getDatasetMeta(index);\n\n\t\t\t// See controller.isDatasetVisible comment\n\t\t\tmeta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null;\n\n\t\t\t// We hid a dataset ... rerender the chart\n\t\t\tci.update();\n\t\t},\n\n\t\tonHover: null,\n\t\tonLeave: null,\n\n\t\tlabels: {\n\t\t\tboxWidth: 40,\n\t\t\tpadding: 10,\n\t\t\t// Generates labels shown in the legend\n\t\t\t// Valid properties to return:\n\t\t\t// text : text to display\n\t\t\t// fillStyle : fill of coloured box\n\t\t\t// strokeStyle: stroke of coloured box\n\t\t\t// hidden : if this legend item refers to a hidden item\n\t\t\t// lineCap : cap style for line\n\t\t\t// lineDash\n\t\t\t// lineDashOffset :\n\t\t\t// lineJoin :\n\t\t\t// lineWidth :\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar datasets = chart.data.datasets;\n\t\t\t\tvar options = chart.options.legend || {};\n\t\t\t\tvar usePointStyle = options.labels && options.labels.usePointStyle;\n\n\t\t\t\treturn chart._getSortedDatasetMetas().map(function(meta) {\n\t\t\t\t\tvar style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: datasets[meta.index].label,\n\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\thidden: !chart.isDatasetVisible(meta.index),\n\t\t\t\t\t\tlineCap: style.borderCapStyle,\n\t\t\t\t\t\tlineDash: style.borderDash,\n\t\t\t\t\t\tlineDashOffset: style.borderDashOffset,\n\t\t\t\t\t\tlineJoin: style.borderJoinStyle,\n\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\tpointStyle: style.pointStyle,\n\t\t\t\t\t\trotation: style.rotation,\n\n\t\t\t\t\t\t// Below is extra data used for toggling the datasets\n\t\t\t\t\t\tdatasetIndex: meta.index\n\t\t\t\t\t};\n\t\t\t\t}, this);\n\t\t\t}\n\t\t}\n\t},\n\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar datasets = chart.data.datasets;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\n\t\tfor (i = 0, ilen = datasets.length; i < ilen; i++) {\n\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\tlistItemSpan.style.backgroundColor = datasets[i].backgroundColor;\n\t\t\tif (datasets[i].label) {\n\t\t\t\tlistItem.appendChild(document.createTextNode(datasets[i].label));\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t}\n});\n\n/**\n * Helper function to get the box width based on the usePointStyle option\n * @param {object} labelopts - the label options on the legend\n * @param {number} fontSize - the label font size\n * @return {number} width of the color box area\n */\nfunction getBoxWidth(labelOpts, fontSize) {\n\treturn labelOpts.usePointStyle && labelOpts.boxWidth > fontSize ?\n\t\tfontSize :\n\t\tlabelOpts.boxWidth;\n}\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Legend = core_element.extend({\n\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\n\t\t/**\n \t\t * @private\n \t\t */\n\t\tme._hoveredItem = null;\n\n\t\t// Are we in doughnut mode which has a different data type\n\t\tme.doughnutMode = false;\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\t// Any function defined here is inherited by all legend types.\n\t// Any function can be extended by the legend type\n\n\tbeforeUpdate: noop$1,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\t},\n\tafterUpdate: noop$1,\n\n\t//\n\n\tbeforeSetDimensions: noop$1,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$1,\n\n\t//\n\n\tbeforeBuildLabels: noop$1,\n\tbuildLabels: function() {\n\t\tvar me = this;\n\t\tvar labelOpts = me.options.labels || {};\n\t\tvar legendItems = helpers$1.callback(labelOpts.generateLabels, [me.chart], me) || [];\n\n\t\tif (labelOpts.filter) {\n\t\t\tlegendItems = legendItems.filter(function(item) {\n\t\t\t\treturn labelOpts.filter(item, me.chart.data);\n\t\t\t});\n\t\t}\n\n\t\tif (me.options.reverse) {\n\t\t\tlegendItems.reverse();\n\t\t}\n\n\t\tme.legendItems = legendItems;\n\t},\n\tafterBuildLabels: noop$1,\n\n\t//\n\n\tbeforeFit: noop$1,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar display = opts.display;\n\n\t\tvar ctx = me.ctx;\n\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\n\t\t// Reset hit boxes\n\t\tvar hitboxes = me.legendHitBoxes = [];\n\n\t\tvar minSize = me.minSize;\n\t\tvar isHorizontal = me.isHorizontal();\n\n\t\tif (isHorizontal) {\n\t\t\tminSize.width = me.maxWidth; // fill all the width\n\t\t\tminSize.height = display ? 10 : 0;\n\t\t} else {\n\t\t\tminSize.width = display ? 10 : 0;\n\t\t\tminSize.height = me.maxHeight; // fill all the height\n\t\t}\n\n\t\t// Increase sizes here\n\t\tif (!display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\t\tctx.font = labelFont.string;\n\n\t\tif (isHorizontal) {\n\t\t\t// Labels\n\n\t\t\t// Width of each line of legend boxes. Labels wrap onto multiple lines when there are too many to fit on one\n\t\t\tvar lineWidths = me.lineWidths = [0];\n\t\t\tvar totalHeight = 0;\n\n\t\t\tctx.textAlign = 'left';\n\t\t\tctx.textBaseline = 'middle';\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\tif (i === 0 || lineWidths[lineWidths.length - 1] + width + 2 * labelOpts.padding > minSize.width) {\n\t\t\t\t\ttotalHeight += fontSize + labelOpts.padding;\n\t\t\t\t\tlineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n\t\t\t\t}\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: width,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\n\t\t\t\tlineWidths[lineWidths.length - 1] += width + labelOpts.padding;\n\t\t\t});\n\n\t\t\tminSize.height += totalHeight;\n\n\t\t} else {\n\t\t\tvar vPadding = labelOpts.padding;\n\t\t\tvar columnWidths = me.columnWidths = [];\n\t\t\tvar columnHeights = me.columnHeights = [];\n\t\t\tvar totalWidth = labelOpts.padding;\n\t\t\tvar currentColWidth = 0;\n\t\t\tvar currentColHeight = 0;\n\n\t\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\t\t\tvar itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n\n\t\t\t\t// If too tall, go to new column\n\t\t\t\tif (i > 0 && currentColHeight + fontSize + 2 * vPadding > minSize.height) {\n\t\t\t\t\ttotalWidth += currentColWidth + labelOpts.padding;\n\t\t\t\t\tcolumnWidths.push(currentColWidth); // previous column width\n\t\t\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\t\t\tcurrentColWidth = 0;\n\t\t\t\t\tcurrentColHeight = 0;\n\t\t\t\t}\n\n\t\t\t\t// Get max width\n\t\t\t\tcurrentColWidth = Math.max(currentColWidth, itemWidth);\n\t\t\t\tcurrentColHeight += fontSize + vPadding;\n\n\t\t\t\t// Store the hitbox width and height here. Final position will be updated in `draw`\n\t\t\t\thitboxes[i] = {\n\t\t\t\t\tleft: 0,\n\t\t\t\t\ttop: 0,\n\t\t\t\t\twidth: itemWidth,\n\t\t\t\t\theight: fontSize\n\t\t\t\t};\n\t\t\t});\n\n\t\t\ttotalWidth += currentColWidth;\n\t\t\tcolumnWidths.push(currentColWidth);\n\t\t\tcolumnHeights.push(currentColHeight);\n\t\t\tminSize.width += totalWidth;\n\t\t}\n\n\t\tme.width = minSize.width;\n\t\tme.height = minSize.height;\n\t},\n\tafterFit: noop$1,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\treturn this.options.position === 'top' || this.options.position === 'bottom';\n\t},\n\n\t// Actually draw the legend on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar labelOpts = opts.labels;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor;\n\t\tvar lineDefault = globalDefaults.elements.line;\n\t\tvar legendHeight = me.height;\n\t\tvar columnHeights = me.columnHeights;\n\t\tvar legendWidth = me.width;\n\t\tvar lineWidths = me.lineWidths;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar rtlHelper = getRtlHelper$1(opts.rtl, me.left, me.minSize.width);\n\t\tvar ctx = me.ctx;\n\t\tvar fontColor = valueOrDefault$e(labelOpts.fontColor, globalDefaults.defaultFontColor);\n\t\tvar labelFont = helpers$1.options._parseFont(labelOpts);\n\t\tvar fontSize = labelFont.size;\n\t\tvar cursor;\n\n\t\t// Canvas setup\n\t\tctx.textAlign = rtlHelper.textAlign('left');\n\t\tctx.textBaseline = 'middle';\n\t\tctx.lineWidth = 0.5;\n\t\tctx.strokeStyle = fontColor; // for strikethrough effect\n\t\tctx.fillStyle = fontColor; // render in correct colour\n\t\tctx.font = labelFont.string;\n\n\t\tvar boxWidth = getBoxWidth(labelOpts, fontSize);\n\t\tvar hitboxes = me.legendHitBoxes;\n\n\t\t// current position\n\t\tvar drawLegendBox = function(x, y, legendItem) {\n\t\t\tif (isNaN(boxWidth) || boxWidth <= 0) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the ctx for the box\n\t\t\tctx.save();\n\n\t\t\tvar lineWidth = valueOrDefault$e(legendItem.lineWidth, lineDefault.borderWidth);\n\t\t\tctx.fillStyle = valueOrDefault$e(legendItem.fillStyle, defaultColor);\n\t\t\tctx.lineCap = valueOrDefault$e(legendItem.lineCap, lineDefault.borderCapStyle);\n\t\t\tctx.lineDashOffset = valueOrDefault$e(legendItem.lineDashOffset, lineDefault.borderDashOffset);\n\t\t\tctx.lineJoin = valueOrDefault$e(legendItem.lineJoin, lineDefault.borderJoinStyle);\n\t\t\tctx.lineWidth = lineWidth;\n\t\t\tctx.strokeStyle = valueOrDefault$e(legendItem.strokeStyle, defaultColor);\n\n\t\t\tif (ctx.setLineDash) {\n\t\t\t\t// IE 9 and 10 do not support line dash\n\t\t\t\tctx.setLineDash(valueOrDefault$e(legendItem.lineDash, lineDefault.borderDash));\n\t\t\t}\n\n\t\t\tif (labelOpts && labelOpts.usePointStyle) {\n\t\t\t\t// Recalculate x and y for drawPoint() because its expecting\n\t\t\t\t// x and y to be center of figure (instead of top left)\n\t\t\t\tvar radius = boxWidth * Math.SQRT2 / 2;\n\t\t\t\tvar centerX = rtlHelper.xPlus(x, boxWidth / 2);\n\t\t\t\tvar centerY = y + fontSize / 2;\n\n\t\t\t\t// Draw pointStyle as legend symbol\n\t\t\t\thelpers$1.canvas.drawPoint(ctx, legendItem.pointStyle, radius, centerX, centerY, legendItem.rotation);\n\t\t\t} else {\n\t\t\t\t// Draw box as legend symbol\n\t\t\t\tctx.fillRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\tif (lineWidth !== 0) {\n\t\t\t\t\tctx.strokeRect(rtlHelper.leftForLtr(x, boxWidth), y, boxWidth, fontSize);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tctx.restore();\n\t\t};\n\n\t\tvar fillText = function(x, y, legendItem, textWidth) {\n\t\t\tvar halfFontSize = fontSize / 2;\n\t\t\tvar xLeft = rtlHelper.xPlus(x, boxWidth + halfFontSize);\n\t\t\tvar yMiddle = y + halfFontSize;\n\n\t\t\tctx.fillText(legendItem.text, xLeft, yMiddle);\n\n\t\t\tif (legendItem.hidden) {\n\t\t\t\t// Strikethrough the text if hidden\n\t\t\t\tctx.beginPath();\n\t\t\t\tctx.lineWidth = 2;\n\t\t\t\tctx.moveTo(xLeft, yMiddle);\n\t\t\t\tctx.lineTo(rtlHelper.xPlus(xLeft, textWidth), yMiddle);\n\t\t\t\tctx.stroke();\n\t\t\t}\n\t\t};\n\n\t\tvar alignmentOffset = function(dimension, blockSize) {\n\t\t\tswitch (opts.align) {\n\t\t\tcase 'start':\n\t\t\t\treturn labelOpts.padding;\n\t\t\tcase 'end':\n\t\t\t\treturn dimension - blockSize;\n\t\t\tdefault: // center\n\t\t\t\treturn (dimension - blockSize + labelOpts.padding) / 2;\n\t\t\t}\n\t\t};\n\n\t\t// Horizontal\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tif (isHorizontal) {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + alignmentOffset(legendWidth, lineWidths[0]),\n\t\t\t\ty: me.top + labelOpts.padding,\n\t\t\t\tline: 0\n\t\t\t};\n\t\t} else {\n\t\t\tcursor = {\n\t\t\t\tx: me.left + labelOpts.padding,\n\t\t\t\ty: me.top + alignmentOffset(legendHeight, columnHeights[0]),\n\t\t\t\tline: 0\n\t\t\t};\n\t\t}\n\n\t\thelpers$1.rtl.overrideTextDirection(me.ctx, opts.textDirection);\n\n\t\tvar itemHeight = fontSize + labelOpts.padding;\n\t\thelpers$1.each(me.legendItems, function(legendItem, i) {\n\t\t\tvar textWidth = ctx.measureText(legendItem.text).width;\n\t\t\tvar width = boxWidth + (fontSize / 2) + textWidth;\n\t\t\tvar x = cursor.x;\n\t\t\tvar y = cursor.y;\n\n\t\t\trtlHelper.setWidth(me.minSize.width);\n\n\t\t\t// Use (me.left + me.minSize.width) and (me.top + me.minSize.height)\n\t\t\t// instead of me.right and me.bottom because me.width and me.height\n\t\t\t// may have been changed since me.minSize was calculated\n\t\t\tif (isHorizontal) {\n\t\t\t\tif (i > 0 && x + width + labelOpts.padding > me.left + me.minSize.width) {\n\t\t\t\t\ty = cursor.y += itemHeight;\n\t\t\t\t\tcursor.line++;\n\t\t\t\t\tx = cursor.x = me.left + alignmentOffset(legendWidth, lineWidths[cursor.line]);\n\t\t\t\t}\n\t\t\t} else if (i > 0 && y + itemHeight > me.top + me.minSize.height) {\n\t\t\t\tx = cursor.x = x + me.columnWidths[cursor.line] + labelOpts.padding;\n\t\t\t\tcursor.line++;\n\t\t\t\ty = cursor.y = me.top + alignmentOffset(legendHeight, columnHeights[cursor.line]);\n\t\t\t}\n\n\t\t\tvar realX = rtlHelper.x(x);\n\n\t\t\tdrawLegendBox(realX, y, legendItem);\n\n\t\t\thitboxes[i].left = rtlHelper.leftForLtr(realX, hitboxes[i].width);\n\t\t\thitboxes[i].top = y;\n\n\t\t\t// Fill the actual label\n\t\t\tfillText(realX, y, legendItem, textWidth);\n\n\t\t\tif (isHorizontal) {\n\t\t\t\tcursor.x += width + labelOpts.padding;\n\t\t\t} else {\n\t\t\t\tcursor.y += itemHeight;\n\t\t\t}\n\t\t});\n\n\t\thelpers$1.rtl.restoreTextDirection(me.ctx, opts.textDirection);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getLegendItemAt: function(x, y) {\n\t\tvar me = this;\n\t\tvar i, hitBox, lh;\n\n\t\tif (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n\t\t\t// See if we are touching one of the dataset boxes\n\t\t\tlh = me.legendHitBoxes;\n\t\t\tfor (i = 0; i < lh.length; ++i) {\n\t\t\t\thitBox = lh[i];\n\n\t\t\t\tif (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n\t\t\t\t\t// Touching an element\n\t\t\t\t\treturn me.legendItems[i];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn null;\n\t},\n\n\t/**\n\t * Handle an event\n\t * @private\n\t * @param {IEvent} event - The event to handle\n\t */\n\thandleEvent: function(e) {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar type = e.type === 'mouseup' ? 'click' : e.type;\n\t\tvar hoveredItem;\n\n\t\tif (type === 'mousemove') {\n\t\t\tif (!opts.onHover && !opts.onLeave) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (type === 'click') {\n\t\t\tif (!opts.onClick) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\n\t\t// Chart event already has relative position in it\n\t\thoveredItem = me._getLegendItemAt(e.x, e.y);\n\n\t\tif (type === 'click') {\n\t\t\tif (hoveredItem && opts.onClick) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onClick.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t} else {\n\t\t\tif (opts.onLeave && hoveredItem !== me._hoveredItem) {\n\t\t\t\tif (me._hoveredItem) {\n\t\t\t\t\topts.onLeave.call(me, e.native, me._hoveredItem);\n\t\t\t\t}\n\t\t\t\tme._hoveredItem = hoveredItem;\n\t\t\t}\n\n\t\t\tif (opts.onHover && hoveredItem) {\n\t\t\t\t// use e.native for backwards compatibility\n\t\t\t\topts.onHover.call(me, e.native, hoveredItem);\n\t\t\t}\n\t\t}\n\t}\n});\n\nfunction createNewLegendAndAttach(chart, legendOpts) {\n\tvar legend = new Legend({\n\t\tctx: chart.ctx,\n\t\toptions: legendOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, legend, legendOpts);\n\tcore_layouts.addBox(chart, legend);\n\tchart.legend = legend;\n}\n\nvar plugin_legend = {\n\tid: 'legend',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the legend is registered as a plugin, making\n\t * Chart.Legend obsolete. To avoid a breaking change, we export the Legend as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Legend,\n\n\tbeforeInit: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\n\t\tif (legendOpts) {\n\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar legendOpts = chart.options.legend;\n\t\tvar legend = chart.legend;\n\n\t\tif (legendOpts) {\n\t\t\thelpers$1.mergeIf(legendOpts, core_defaults.global.legend);\n\n\t\t\tif (legend) {\n\t\t\t\tcore_layouts.configure(chart, legend, legendOpts);\n\t\t\t\tlegend.options = legendOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewLegendAndAttach(chart, legendOpts);\n\t\t\t}\n\t\t} else if (legend) {\n\t\t\tcore_layouts.removeBox(chart, legend);\n\t\t\tdelete chart.legend;\n\t\t}\n\t},\n\n\tafterEvent: function(chart, e) {\n\t\tvar legend = chart.legend;\n\t\tif (legend) {\n\t\t\tlegend.handleEvent(e);\n\t\t}\n\t}\n};\n\nvar noop$2 = helpers$1.noop;\n\ncore_defaults._set('global', {\n\ttitle: {\n\t\tdisplay: false,\n\t\tfontStyle: 'bold',\n\t\tfullWidth: true,\n\t\tpadding: 10,\n\t\tposition: 'top',\n\t\ttext: '',\n\t\tweight: 2000 // by default greater than legend (1000) to be above\n\t}\n});\n\n/**\n * IMPORTANT: this class is exposed publicly as Chart.Legend, backward compatibility required!\n */\nvar Title = core_element.extend({\n\tinitialize: function(config) {\n\t\tvar me = this;\n\t\thelpers$1.extend(me, config);\n\n\t\t// Contains hit boxes for each dataset (in dataset order)\n\t\tme.legendHitBoxes = [];\n\t},\n\n\t// These methods are ordered by lifecycle. Utilities then follow.\n\n\tbeforeUpdate: noop$2,\n\tupdate: function(maxWidth, maxHeight, margins) {\n\t\tvar me = this;\n\n\t\t// Update Lifecycle - Probably don't want to ever extend or overwrite this function ;)\n\t\tme.beforeUpdate();\n\n\t\t// Absorb the master measurements\n\t\tme.maxWidth = maxWidth;\n\t\tme.maxHeight = maxHeight;\n\t\tme.margins = margins;\n\n\t\t// Dimensions\n\t\tme.beforeSetDimensions();\n\t\tme.setDimensions();\n\t\tme.afterSetDimensions();\n\t\t// Labels\n\t\tme.beforeBuildLabels();\n\t\tme.buildLabels();\n\t\tme.afterBuildLabels();\n\n\t\t// Fit\n\t\tme.beforeFit();\n\t\tme.fit();\n\t\tme.afterFit();\n\t\t//\n\t\tme.afterUpdate();\n\n\t\treturn me.minSize;\n\n\t},\n\tafterUpdate: noop$2,\n\n\t//\n\n\tbeforeSetDimensions: noop$2,\n\tsetDimensions: function() {\n\t\tvar me = this;\n\t\t// Set the unconstrained dimension before label rotation\n\t\tif (me.isHorizontal()) {\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.width = me.maxWidth;\n\t\t\tme.left = 0;\n\t\t\tme.right = me.width;\n\t\t} else {\n\t\t\tme.height = me.maxHeight;\n\n\t\t\t// Reset position before calculating rotation\n\t\t\tme.top = 0;\n\t\t\tme.bottom = me.height;\n\t\t}\n\n\t\t// Reset padding\n\t\tme.paddingLeft = 0;\n\t\tme.paddingTop = 0;\n\t\tme.paddingRight = 0;\n\t\tme.paddingBottom = 0;\n\n\t\t// Reset minSize\n\t\tme.minSize = {\n\t\t\twidth: 0,\n\t\t\theight: 0\n\t\t};\n\t},\n\tafterSetDimensions: noop$2,\n\n\t//\n\n\tbeforeBuildLabels: noop$2,\n\tbuildLabels: noop$2,\n\tafterBuildLabels: noop$2,\n\n\t//\n\n\tbeforeFit: noop$2,\n\tfit: function() {\n\t\tvar me = this;\n\t\tvar opts = me.options;\n\t\tvar minSize = me.minSize = {};\n\t\tvar isHorizontal = me.isHorizontal();\n\t\tvar lineCount, textSize;\n\n\t\tif (!opts.display) {\n\t\t\tme.width = minSize.width = me.height = minSize.height = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tlineCount = helpers$1.isArray(opts.text) ? opts.text.length : 1;\n\t\ttextSize = lineCount * helpers$1.options._parseFont(opts).lineHeight + opts.padding * 2;\n\n\t\tme.width = minSize.width = isHorizontal ? me.maxWidth : textSize;\n\t\tme.height = minSize.height = isHorizontal ? textSize : me.maxHeight;\n\t},\n\tafterFit: noop$2,\n\n\t// Shared Methods\n\tisHorizontal: function() {\n\t\tvar pos = this.options.position;\n\t\treturn pos === 'top' || pos === 'bottom';\n\t},\n\n\t// Actually draw the title block on the canvas\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar ctx = me.ctx;\n\t\tvar opts = me.options;\n\n\t\tif (!opts.display) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar fontOpts = helpers$1.options._parseFont(opts);\n\t\tvar lineHeight = fontOpts.lineHeight;\n\t\tvar offset = lineHeight / 2 + opts.padding;\n\t\tvar rotation = 0;\n\t\tvar top = me.top;\n\t\tvar left = me.left;\n\t\tvar bottom = me.bottom;\n\t\tvar right = me.right;\n\t\tvar maxWidth, titleX, titleY;\n\n\t\tctx.fillStyle = helpers$1.valueOrDefault(opts.fontColor, core_defaults.global.defaultFontColor); // render in correct colour\n\t\tctx.font = fontOpts.string;\n\n\t\t// Horizontal\n\t\tif (me.isHorizontal()) {\n\t\t\ttitleX = left + ((right - left) / 2); // midpoint of the width\n\t\t\ttitleY = top + offset;\n\t\t\tmaxWidth = right - left;\n\t\t} else {\n\t\t\ttitleX = opts.position === 'left' ? left + offset : right - offset;\n\t\t\ttitleY = top + ((bottom - top) / 2);\n\t\t\tmaxWidth = bottom - top;\n\t\t\trotation = Math.PI * (opts.position === 'left' ? -0.5 : 0.5);\n\t\t}\n\n\t\tctx.save();\n\t\tctx.translate(titleX, titleY);\n\t\tctx.rotate(rotation);\n\t\tctx.textAlign = 'center';\n\t\tctx.textBaseline = 'middle';\n\n\t\tvar text = opts.text;\n\t\tif (helpers$1.isArray(text)) {\n\t\t\tvar y = 0;\n\t\t\tfor (var i = 0; i < text.length; ++i) {\n\t\t\t\tctx.fillText(text[i], 0, y, maxWidth);\n\t\t\t\ty += lineHeight;\n\t\t\t}\n\t\t} else {\n\t\t\tctx.fillText(text, 0, 0, maxWidth);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nfunction createNewTitleBlockAndAttach(chart, titleOpts) {\n\tvar title = new Title({\n\t\tctx: chart.ctx,\n\t\toptions: titleOpts,\n\t\tchart: chart\n\t});\n\n\tcore_layouts.configure(chart, title, titleOpts);\n\tcore_layouts.addBox(chart, title);\n\tchart.titleBlock = title;\n}\n\nvar plugin_title = {\n\tid: 'title',\n\n\t/**\n\t * Backward compatibility: since 2.1.5, the title is registered as a plugin, making\n\t * Chart.Title obsolete. To avoid a breaking change, we export the Title as part of\n\t * the plugin, which one will be re-exposed in the chart.js file.\n\t * https://github.com/chartjs/Chart.js/pull/2640\n\t * @private\n\t */\n\t_element: Title,\n\n\tbeforeInit: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\n\t\tif (titleOpts) {\n\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t}\n\t},\n\n\tbeforeUpdate: function(chart) {\n\t\tvar titleOpts = chart.options.title;\n\t\tvar titleBlock = chart.titleBlock;\n\n\t\tif (titleOpts) {\n\t\t\thelpers$1.mergeIf(titleOpts, core_defaults.global.title);\n\n\t\t\tif (titleBlock) {\n\t\t\t\tcore_layouts.configure(chart, titleBlock, titleOpts);\n\t\t\t\ttitleBlock.options = titleOpts;\n\t\t\t} else {\n\t\t\t\tcreateNewTitleBlockAndAttach(chart, titleOpts);\n\t\t\t}\n\t\t} else if (titleBlock) {\n\t\t\tcore_layouts.removeBox(chart, titleBlock);\n\t\t\tdelete chart.titleBlock;\n\t\t}\n\t}\n};\n\nvar plugins = {};\nvar filler = plugin_filler;\nvar legend = plugin_legend;\nvar title = plugin_title;\nplugins.filler = filler;\nplugins.legend = legend;\nplugins.title = title;\n\n/**\n * @namespace Chart\n */\n\n\ncore_controller.helpers = helpers$1;\n\n// @todo dispatch these helpers into appropriated helpers/helpers.* file and write unit tests!\ncore_helpers();\n\ncore_controller._adapters = core_adapters;\ncore_controller.Animation = core_animation;\ncore_controller.animationService = core_animations;\ncore_controller.controllers = controllers;\ncore_controller.DatasetController = core_datasetController;\ncore_controller.defaults = core_defaults;\ncore_controller.Element = core_element;\ncore_controller.elements = elements;\ncore_controller.Interaction = core_interaction;\ncore_controller.layouts = core_layouts;\ncore_controller.platform = platform;\ncore_controller.plugins = core_plugins;\ncore_controller.Scale = core_scale;\ncore_controller.scaleService = core_scaleService;\ncore_controller.Ticks = core_ticks;\ncore_controller.Tooltip = core_tooltip;\n\n// Register built-in scales\n\ncore_controller.helpers.each(scales, function(scale, type) {\n\tcore_controller.scaleService.registerScaleType(type, scale, scale._defaults);\n});\n\n// Load to register built-in adapters (as side effects)\n\n\n// Loading built-in plugins\n\nfor (var k in plugins) {\n\tif (plugins.hasOwnProperty(k)) {\n\t\tcore_controller.plugins.register(plugins[k]);\n\t}\n}\n\ncore_controller.platform.initialize();\n\nvar src = core_controller;\nif (typeof window !== 'undefined') {\n\twindow.Chart = core_controller;\n}\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Chart\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.Chart = core_controller;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Legend\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Legend = plugins.legend._element;\n\n/**\n * Provided for backward compatibility, not available anymore\n * @namespace Chart.Title\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.Title = plugins.title._element;\n\n/**\n * Provided for backward compatibility, use Chart.plugins instead\n * @namespace Chart.pluginService\n * @deprecated since version 2.1.5\n * @todo remove at version 3\n * @private\n */\ncore_controller.pluginService = core_controller.plugins;\n\n/**\n * Provided for backward compatibility, inheriting from Chart.PlugingBase has no\n * effect, instead simply create/register plugins via plain JavaScript objects.\n * @interface Chart.PluginBase\n * @deprecated since version 2.5.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.PluginBase = core_controller.Element.extend({});\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas instead.\n * @namespace Chart.canvasHelpers\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\ncore_controller.canvasHelpers = core_controller.helpers.canvas;\n\n/**\n * Provided for backward compatibility, use Chart.layouts instead.\n * @namespace Chart.layoutService\n * @deprecated since version 2.7.3\n * @todo remove at version 3\n * @private\n */\ncore_controller.layoutService = core_controller.layouts;\n\n/**\n * Provided for backward compatibility, not available anymore.\n * @namespace Chart.LinearScaleBase\n * @deprecated since version 2.8\n * @todo remove at version 3\n * @private\n */\ncore_controller.LinearScaleBase = scale_linearbase;\n\n/**\n * Provided for backward compatibility, instead we should create a new Chart\n * by setting the type in the config (`new Chart(id, {type: '{chart-type}'}`).\n * @deprecated since version 2.8.0\n * @todo remove at version 3\n */\ncore_controller.helpers.each(\n\t[\n\t\t'Bar',\n\t\t'Bubble',\n\t\t'Doughnut',\n\t\t'Line',\n\t\t'PolarArea',\n\t\t'Radar',\n\t\t'Scatter'\n\t],\n\tfunction(klass) {\n\t\tcore_controller[klass] = function(ctx, cfg) {\n\t\t\treturn new core_controller(ctx, core_controller.helpers.merge(cfg || {}, {\n\t\t\t\ttype: klass.charAt(0).toLowerCase() + klass.slice(1)\n\t\t\t}));\n\t\t};\n\t}\n);\n\nreturn src;\n\n})));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar useDebounce_1 = require(\"./useDebounce\");\nexports.useDebounce = useDebounce_1.default;\nvar useDebouncedCallback_1 = require(\"./useDebouncedCallback\");\nexports.useDebouncedCallback = useDebouncedCallback_1.default;\nvar useThrottledCallback_1 = require(\"./useThrottledCallback\");\nexports.useThrottledCallback = useThrottledCallback_1.default;\n","'use strict';\nmodule.exports = require('../../full/array/fill');\n","'use strict';\nmodule.exports = require('../../full/array/find-index');\n","'use strict';\nmodule.exports = require('../../full/array/find');\n","'use strict';\nmodule.exports = require('../../full/array/from');\n","'use strict';\nmodule.exports = require('../../full/array/includes');\n","'use strict';\nmodule.exports = require('../../full/map');\n","'use strict';\nmodule.exports = require('../../full/object/assign');\n","'use strict';\nmodule.exports = require('../../full/promise/finally');\n","'use strict';\nmodule.exports = require('../../full/promise');\n","'use strict';\nmodule.exports = require('../../full/set');\n","'use strict';\nmodule.exports = require('../../full/symbol');\n","/*!\n * jQuery Validation Plugin v1.20.0\n *\n * https://jqueryvalidation.org/\n *\n * Copyright (c) 2023 Jörn Zaefferer\n * Released under the MIT license\n */\n(function( factory ) {\n\tif ( typeof define === \"function\" && define.amd ) {\n\t\tdefine( [\"jquery\"], factory );\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory( require( \"jquery\" ) );\n\t} else {\n\t\tfactory( jQuery );\n\t}\n}(function( $ ) {\n\n$.extend( $.fn, {\n\n\t// https://jqueryvalidation.org/validate/\n\tvalidate: function( options ) {\n\n\t\t// If nothing is selected, return nothing; can't chain anyway\n\t\tif ( !this.length ) {\n\t\t\tif ( options && options.debug && window.console ) {\n\t\t\t\tconsole.warn( \"Nothing selected, can't validate, returning nothing.\" );\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if a validator for this form was already created\n\t\tvar validator = $.data( this[ 0 ], \"validator\" );\n\t\tif ( validator ) {\n\t\t\treturn validator;\n\t\t}\n\n\t\t// Add novalidate tag if HTML5.\n\t\tthis.attr( \"novalidate\", \"novalidate\" );\n\n\t\tvalidator = new $.validator( options, this[ 0 ] );\n\t\t$.data( this[ 0 ], \"validator\", validator );\n\n\t\tif ( validator.settings.onsubmit ) {\n\n\t\t\tthis.on( \"click.validate\", \":submit\", function( event ) {\n\n\t\t\t\t// Track the used submit button to properly handle scripted\n\t\t\t\t// submits later.\n\t\t\t\tvalidator.submitButton = event.currentTarget;\n\n\t\t\t\t// Allow suppressing validation by adding a cancel class to the submit button\n\t\t\t\tif ( $( this ).hasClass( \"cancel\" ) ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\n\t\t\t\t// Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button\n\t\t\t\tif ( $( this ).attr( \"formnovalidate\" ) !== undefined ) {\n\t\t\t\t\tvalidator.cancelSubmit = true;\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// Validate the form on submit\n\t\t\tthis.on( \"submit.validate\", function( event ) {\n\t\t\t\tif ( validator.settings.debug ) {\n\n\t\t\t\t\t// Prevent form submit to be able to see console output\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\n\t\t\t\tfunction handle() {\n\t\t\t\t\tvar hidden, result;\n\n\t\t\t\t\t// Insert a hidden input as a replacement for the missing submit button\n\t\t\t\t\t// The hidden input is inserted in two cases:\n\t\t\t\t\t// - A user defined a `submitHandler`\n\t\t\t\t\t// - There was a pending request due to `remote` method and `stopRequest()`\n\t\t\t\t\t// was called to submit the form in case it's valid\n\t\t\t\t\tif ( validator.submitButton && ( validator.settings.submitHandler || validator.formSubmitted ) ) {\n\t\t\t\t\t\thidden = $( \"<input type='hidden'/>\" )\n\t\t\t\t\t\t\t.attr( \"name\", validator.submitButton.name )\n\t\t\t\t\t\t\t.val( $( validator.submitButton ).val() )\n\t\t\t\t\t\t\t.appendTo( validator.currentForm );\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( validator.settings.submitHandler && !validator.settings.debug ) {\n\t\t\t\t\t\tresult = validator.settings.submitHandler.call( validator, validator.currentForm, event );\n\t\t\t\t\t\tif ( hidden ) {\n\n\t\t\t\t\t\t\t// And clean up afterwards; thanks to no-block-scope, hidden can be referenced\n\t\t\t\t\t\t\thidden.remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t\treturn result;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\t// Prevent submit for invalid forms or custom submit handlers\n\t\t\t\tif ( validator.cancelSubmit ) {\n\t\t\t\t\tvalidator.cancelSubmit = false;\n\t\t\t\t\treturn handle();\n\t\t\t\t}\n\t\t\t\tif ( validator.form() ) {\n\t\t\t\t\tif ( validator.pendingRequest ) {\n\t\t\t\t\t\tvalidator.formSubmitted = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\treturn handle();\n\t\t\t\t} else {\n\t\t\t\t\tvalidator.focusInvalid();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn validator;\n\t},\n\n\t// https://jqueryvalidation.org/valid/\n\tvalid: function() {\n\t\tvar valid, validator, errorList;\n\n\t\tif ( $( this[ 0 ] ).is( \"form\" ) ) {\n\t\t\tvalid = this.validate().form();\n\t\t} else {\n\t\t\terrorList = [];\n\t\t\tvalid = true;\n\t\t\tvalidator = $( this[ 0 ].form ).validate();\n\t\t\tthis.each( function() {\n\t\t\t\tvalid = validator.element( this ) && valid;\n\t\t\t\tif ( !valid ) {\n\t\t\t\t\terrorList = errorList.concat( validator.errorList );\n\t\t\t\t}\n\t\t\t} );\n\t\t\tvalidator.errorList = errorList;\n\t\t}\n\t\treturn valid;\n\t},\n\n\t// https://jqueryvalidation.org/rules/\n\trules: function( command, argument ) {\n\t\tvar element = this[ 0 ],\n\t\t\tisContentEditable = typeof this.attr( \"contenteditable\" ) !== \"undefined\" && this.attr( \"contenteditable\" ) !== \"false\",\n\t\t\tsettings, staticRules, existingRules, data, param, filtered;\n\n\t\t// If nothing is selected, return empty object; can't chain anyway\n\t\tif ( element == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !element.form && isContentEditable ) {\n\t\t\telement.form = this.closest( \"form\" )[ 0 ];\n\t\t\telement.name = this.attr( \"name\" );\n\t\t}\n\n\t\tif ( element.form == null ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( command ) {\n\t\t\tsettings = $.data( element.form, \"validator\" ).settings;\n\t\t\tstaticRules = settings.rules;\n\t\t\texistingRules = $.validator.staticRules( element );\n\t\t\tswitch ( command ) {\n\t\t\tcase \"add\":\n\t\t\t\t$.extend( existingRules, $.validator.normalizeRule( argument ) );\n\n\t\t\t\t// Remove messages from rules, but allow them to be set separately\n\t\t\t\tdelete existingRules.messages;\n\t\t\t\tstaticRules[ element.name ] = existingRules;\n\t\t\t\tif ( argument.messages ) {\n\t\t\t\t\tsettings.messages[ element.name ] = $.extend( settings.messages[ element.name ], argument.messages );\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"remove\":\n\t\t\t\tif ( !argument ) {\n\t\t\t\t\tdelete staticRules[ element.name ];\n\t\t\t\t\treturn existingRules;\n\t\t\t\t}\n\t\t\t\tfiltered = {};\n\t\t\t\t$.each( argument.split( /\\s/ ), function( index, method ) {\n\t\t\t\t\tfiltered[ method ] = existingRules[ method ];\n\t\t\t\t\tdelete existingRules[ method ];\n\t\t\t\t} );\n\t\t\t\treturn filtered;\n\t\t\t}\n\t\t}\n\n\t\tdata = $.validator.normalizeRules(\n\t\t$.extend(\n\t\t\t{},\n\t\t\t$.validator.classRules( element ),\n\t\t\t$.validator.attributeRules( element ),\n\t\t\t$.validator.dataRules( element ),\n\t\t\t$.validator.staticRules( element )\n\t\t), element );\n\n\t\t// Make sure required is at front\n\t\tif ( data.required ) {\n\t\t\tparam = data.required;\n\t\t\tdelete data.required;\n\t\t\tdata = $.extend( { required: param }, data );\n\t\t}\n\n\t\t// Make sure remote is at back\n\t\tif ( data.remote ) {\n\t\t\tparam = data.remote;\n\t\t\tdelete data.remote;\n\t\t\tdata = $.extend( data, { remote: param } );\n\t\t}\n\n\t\treturn data;\n\t}\n} );\n\n// JQuery trim is deprecated, provide a trim method based on String.prototype.trim\nvar trim = function( str ) {\n\n\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill\n\treturn str.replace( /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, \"\" );\n};\n\n// Custom selectors\n$.extend( $.expr.pseudos || $.expr[ \":\" ], {\t\t// '|| $.expr[ \":\" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support\n\n\t// https://jqueryvalidation.org/blank-selector/\n\tblank: function( a ) {\n\t\treturn !trim( \"\" + $( a ).val() );\n\t},\n\n\t// https://jqueryvalidation.org/filled-selector/\n\tfilled: function( a ) {\n\t\tvar val = $( a ).val();\n\t\treturn val !== null && !!trim( \"\" + val );\n\t},\n\n\t// https://jqueryvalidation.org/unchecked-selector/\n\tunchecked: function( a ) {\n\t\treturn !$( a ).prop( \"checked\" );\n\t}\n} );\n\n// Constructor for validator\n$.validator = function( options, form ) {\n\tthis.settings = $.extend( true, {}, $.validator.defaults, options );\n\tthis.currentForm = form;\n\tthis.init();\n};\n\n// https://jqueryvalidation.org/jQuery.validator.format/\n$.validator.format = function( source, params ) {\n\tif ( arguments.length === 1 ) {\n\t\treturn function() {\n\t\t\tvar args = $.makeArray( arguments );\n\t\t\targs.unshift( source );\n\t\t\treturn $.validator.format.apply( this, args );\n\t\t};\n\t}\n\tif ( params === undefined ) {\n\t\treturn source;\n\t}\n\tif ( arguments.length > 2 && params.constructor !== Array ) {\n\t\tparams = $.makeArray( arguments ).slice( 1 );\n\t}\n\tif ( params.constructor !== Array ) {\n\t\tparams = [ params ];\n\t}\n\t$.each( params, function( i, n ) {\n\t\tsource = source.replace( new RegExp( \"\\\\{\" + i + \"\\\\}\", \"g\" ), function() {\n\t\t\treturn n;\n\t\t} );\n\t} );\n\treturn source;\n};\n\n$.extend( $.validator, {\n\n\tdefaults: {\n\t\tmessages: {},\n\t\tgroups: {},\n\t\trules: {},\n\t\terrorClass: \"error\",\n\t\tpendingClass: \"pending\",\n\t\tvalidClass: \"valid\",\n\t\terrorElement: \"label\",\n\t\tfocusCleanup: false,\n\t\tfocusInvalid: true,\n\t\terrorContainer: $( [] ),\n\t\terrorLabelContainer: $( [] ),\n\t\tonsubmit: true,\n\t\tignore: \":hidden\",\n\t\tignoreTitle: false,\n\t\tonfocusin: function( element ) {\n\t\t\tthis.lastActive = element;\n\n\t\t\t// Hide error label and remove error class on focus if enabled\n\t\t\tif ( this.settings.focusCleanup ) {\n\t\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.hideThese( this.errorsFor( element ) );\n\t\t\t}\n\t\t},\n\t\tonfocusout: function( element ) {\n\t\t\tif ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonkeyup: function( element, event ) {\n\n\t\t\t// Avoid revalidate the field when pressing one of the following keys\n\t\t\t// Shift => 16\n\t\t\t// Ctrl => 17\n\t\t\t// Alt => 18\n\t\t\t// Caps lock => 20\n\t\t\t// End => 35\n\t\t\t// Home => 36\n\t\t\t// Left arrow => 37\n\t\t\t// Up arrow => 38\n\t\t\t// Right arrow => 39\n\t\t\t// Down arrow => 40\n\t\t\t// Insert => 45\n\t\t\t// Num lock => 144\n\t\t\t// AltGr key => 225\n\t\t\tvar excludedKeys = [\n\t\t\t\t16, 17, 18, 20, 35, 36, 37,\n\t\t\t\t38, 39, 40, 45, 144, 225\n\t\t\t];\n\n\t\t\tif ( event.which === 9 && this.elementValue( element ) === \"\" || $.inArray( event.keyCode, excludedKeys ) !== -1 ) {\n\t\t\t\treturn;\n\t\t\t} else if ( element.name in this.submitted || element.name in this.invalid ) {\n\t\t\t\tthis.element( element );\n\t\t\t}\n\t\t},\n\t\tonclick: function( element ) {\n\n\t\t\t// Click on selects, radiobuttons and checkboxes\n\t\t\tif ( element.name in this.submitted ) {\n\t\t\t\tthis.element( element );\n\n\t\t\t// Or option elements, check parent select in that case\n\t\t\t} else if ( element.parentNode.name in this.submitted ) {\n\t\t\t\tthis.element( element.parentNode );\n\t\t\t}\n\t\t},\n\t\thighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).addClass( errorClass ).removeClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).addClass( errorClass ).removeClass( validClass );\n\t\t\t}\n\t\t},\n\t\tunhighlight: function( element, errorClass, validClass ) {\n\t\t\tif ( element.type === \"radio\" ) {\n\t\t\t\tthis.findByName( element.name ).removeClass( errorClass ).addClass( validClass );\n\t\t\t} else {\n\t\t\t\t$( element ).removeClass( errorClass ).addClass( validClass );\n\t\t\t}\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.setDefaults/\n\tsetDefaults: function( settings ) {\n\t\t$.extend( $.validator.defaults, settings );\n\t},\n\n\tmessages: {\n\t\trequired: \"This field is required.\",\n\t\tremote: \"Please fix this field.\",\n\t\temail: \"Please enter a valid email address.\",\n\t\turl: \"Please enter a valid URL.\",\n\t\tdate: \"Please enter a valid date.\",\n\t\tdateISO: \"Please enter a valid date (ISO).\",\n\t\tnumber: \"Please enter a valid number.\",\n\t\tdigits: \"Please enter only digits.\",\n\t\tequalTo: \"Please enter the same value again.\",\n\t\tmaxlength: $.validator.format( \"Please enter no more than {0} characters.\" ),\n\t\tminlength: $.validator.format( \"Please enter at least {0} characters.\" ),\n\t\trangelength: $.validator.format( \"Please enter a value between {0} and {1} characters long.\" ),\n\t\trange: $.validator.format( \"Please enter a value between {0} and {1}.\" ),\n\t\tmax: $.validator.format( \"Please enter a value less than or equal to {0}.\" ),\n\t\tmin: $.validator.format( \"Please enter a value greater than or equal to {0}.\" ),\n\t\tstep: $.validator.format( \"Please enter a multiple of {0}.\" )\n\t},\n\n\tautoCreateRanges: false,\n\n\tprototype: {\n\n\t\tinit: function() {\n\t\t\tthis.labelContainer = $( this.settings.errorLabelContainer );\n\t\t\tthis.errorContext = this.labelContainer.length && this.labelContainer || $( this.currentForm );\n\t\t\tthis.containers = $( this.settings.errorContainer ).add( this.settings.errorLabelContainer );\n\t\t\tthis.submitted = {};\n\t\t\tthis.valueCache = {};\n\t\t\tthis.pendingRequest = 0;\n\t\t\tthis.pending = {};\n\t\t\tthis.invalid = {};\n\t\t\tthis.reset();\n\n\t\t\tvar currentForm = this.currentForm,\n\t\t\t\tgroups = ( this.groups = {} ),\n\t\t\t\trules;\n\t\t\t$.each( this.settings.groups, function( key, value ) {\n\t\t\t\tif ( typeof value === \"string\" ) {\n\t\t\t\t\tvalue = value.split( /\\s/ );\n\t\t\t\t}\n\t\t\t\t$.each( value, function( index, name ) {\n\t\t\t\t\tgroups[ name ] = key;\n\t\t\t\t} );\n\t\t\t} );\n\t\t\trules = this.settings.rules;\n\t\t\t$.each( rules, function( key, value ) {\n\t\t\t\trules[ key ] = $.validator.normalizeRule( value );\n\t\t\t} );\n\n\t\t\tfunction delegate( event ) {\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( !this.form && isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = $( this ).attr( \"name\" );\n\t\t\t\t}\n\n\t\t\t\t// Ignore the element if it belongs to another form. This will happen mainly\n\t\t\t\t// when setting the `form` attribute of an input to the id of another form.\n\t\t\t\tif ( currentForm !== this.form ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tvar validator = $.data( this.form, \"validator\" ),\n\t\t\t\t\teventType = \"on\" + event.type.replace( /^validate/, \"\" ),\n\t\t\t\t\tsettings = validator.settings;\n\t\t\t\tif ( settings[ eventType ] && !$( this ).is( settings.ignore ) ) {\n\t\t\t\t\tsettings[ eventType ].call( validator, this, event );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.on( \"focusin.validate focusout.validate keyup.validate\",\n\t\t\t\t\t\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], \" +\n\t\t\t\t\t\"[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], \" +\n\t\t\t\t\t\"[type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], \" +\n\t\t\t\t\t\"[type='radio'], [type='checkbox'], [contenteditable], [type='button']\", delegate )\n\n\t\t\t\t// Support: Chrome, oldIE\n\t\t\t\t// \"select\" is provided as event.target when clicking a option\n\t\t\t\t.on( \"click.validate\", \"select, option, [type='radio'], [type='checkbox']\", delegate );\n\n\t\t\tif ( this.settings.invalidHandler ) {\n\t\t\t\t$( this.currentForm ).on( \"invalid-form.validate\", this.settings.invalidHandler );\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.form/\n\t\tform: function() {\n\t\t\tthis.checkForm();\n\t\t\t$.extend( this.submitted, this.errorMap );\n\t\t\tthis.invalid = $.extend( {}, this.errorMap );\n\t\t\tif ( !this.valid() ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t}\n\t\t\tthis.showErrors();\n\t\t\treturn this.valid();\n\t\t},\n\n\t\tcheckForm: function() {\n\t\t\tthis.prepareForm();\n\t\t\tfor ( var i = 0, elements = ( this.currentElements = this.elements() ); elements[ i ]; i++ ) {\n\t\t\t\tthis.check( elements[ i ] );\n\t\t\t}\n\t\t\treturn this.valid();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.element/\n\t\telement: function( element ) {\n\t\t\tvar cleanElement = this.clean( element ),\n\t\t\t\tcheckElement = this.validationTargetFor( cleanElement ),\n\t\t\t\tv = this,\n\t\t\t\tresult = true,\n\t\t\t\trs, group;\n\n\t\t\tif ( checkElement === undefined ) {\n\t\t\t\tdelete this.invalid[ cleanElement.name ];\n\t\t\t} else {\n\t\t\t\tthis.prepareElement( checkElement );\n\t\t\t\tthis.currentElements = $( checkElement );\n\n\t\t\t\t// If this element is grouped, then validate all group elements already\n\t\t\t\t// containing a value\n\t\t\t\tgroup = this.groups[ checkElement.name ];\n\t\t\t\tif ( group ) {\n\t\t\t\t\t$.each( this.groups, function( name, testgroup ) {\n\t\t\t\t\t\tif ( testgroup === group && name !== checkElement.name ) {\n\t\t\t\t\t\t\tcleanElement = v.validationTargetFor( v.clean( v.findByName( name ) ) );\n\t\t\t\t\t\t\tif ( cleanElement && cleanElement.name in v.invalid ) {\n\t\t\t\t\t\t\t\tv.currentElements.push( cleanElement );\n\t\t\t\t\t\t\t\tresult = v.check( cleanElement ) && result;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\trs = this.check( checkElement ) !== false;\n\t\t\t\tresult = result && rs;\n\t\t\t\tif ( rs ) {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = false;\n\t\t\t\t} else {\n\t\t\t\t\tthis.invalid[ checkElement.name ] = true;\n\t\t\t\t}\n\n\t\t\t\tif ( !this.numberOfInvalids() ) {\n\n\t\t\t\t\t// Hide error containers on last error\n\t\t\t\t\tthis.toHide = this.toHide.add( this.containers );\n\t\t\t\t}\n\t\t\t\tthis.showErrors();\n\n\t\t\t\t// Add aria-invalid status for screen readers\n\t\t\t\t$( element ).attr( \"aria-invalid\", !rs );\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.showErrors/\n\t\tshowErrors: function( errors ) {\n\t\t\tif ( errors ) {\n\t\t\t\tvar validator = this;\n\n\t\t\t\t// Add items to error list and map\n\t\t\t\t$.extend( this.errorMap, errors );\n\t\t\t\tthis.errorList = $.map( this.errorMap, function( message, name ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tmessage: message,\n\t\t\t\t\t\telement: validator.findByName( name )[ 0 ]\n\t\t\t\t\t};\n\t\t\t\t} );\n\n\t\t\t\t// Remove items from success list\n\t\t\t\tthis.successList = $.grep( this.successList, function( element ) {\n\t\t\t\t\treturn !( element.name in errors );\n\t\t\t\t} );\n\t\t\t}\n\t\t\tif ( this.settings.showErrors ) {\n\t\t\t\tthis.settings.showErrors.call( this, this.errorMap, this.errorList );\n\t\t\t} else {\n\t\t\t\tthis.defaultShowErrors();\n\t\t\t}\n\t\t},\n\n\t\t// https://jqueryvalidation.org/Validator.resetForm/\n\t\tresetForm: function() {\n\t\t\tif ( $.fn.resetForm ) {\n\t\t\t\t$( this.currentForm ).resetForm();\n\t\t\t}\n\t\t\tthis.invalid = {};\n\t\t\tthis.submitted = {};\n\t\t\tthis.prepareForm();\n\t\t\tthis.hideErrors();\n\t\t\tvar elements = this.elements()\n\t\t\t\t.removeData( \"previousValue\" )\n\t\t\t\t.removeAttr( \"aria-invalid\" );\n\n\t\t\tthis.resetElements( elements );\n\t\t},\n\n\t\tresetElements: function( elements ) {\n\t\t\tvar i;\n\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0; elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ],\n\t\t\t\t\t\tthis.settings.errorClass, \"\" );\n\t\t\t\t\tthis.findByName( elements[ i ].name ).removeClass( this.settings.validClass );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\telements\n\t\t\t\t\t.removeClass( this.settings.errorClass )\n\t\t\t\t\t.removeClass( this.settings.validClass );\n\t\t\t}\n\t\t},\n\n\t\tnumberOfInvalids: function() {\n\t\t\treturn this.objectLength( this.invalid );\n\t\t},\n\n\t\tobjectLength: function( obj ) {\n\t\t\t/* jshint unused: false */\n\t\t\tvar count = 0,\n\t\t\t\ti;\n\t\t\tfor ( i in obj ) {\n\n\t\t\t\t// This check allows counting elements with empty error\n\t\t\t\t// message as invalid elements\n\t\t\t\tif ( obj[ i ] !== undefined && obj[ i ] !== null && obj[ i ] !== false ) {\n\t\t\t\t\tcount++;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn count;\n\t\t},\n\n\t\thideErrors: function() {\n\t\t\tthis.hideThese( this.toHide );\n\t\t},\n\n\t\thideThese: function( errors ) {\n\t\t\terrors.not( this.containers ).text( \"\" );\n\t\t\tthis.addWrapper( errors ).hide();\n\t\t},\n\n\t\tvalid: function() {\n\t\t\treturn this.size() === 0;\n\t\t},\n\n\t\tsize: function() {\n\t\t\treturn this.errorList.length;\n\t\t},\n\n\t\tfocusInvalid: function() {\n\t\t\tif ( this.settings.focusInvalid ) {\n\t\t\t\ttry {\n\t\t\t\t\t$( this.findLastActive() || this.errorList.length && this.errorList[ 0 ].element || [] )\n\t\t\t\t\t.filter( \":visible\" )\n\t\t\t\t\t.trigger( \"focus\" )\n\n\t\t\t\t\t// Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find\n\t\t\t\t\t.trigger( \"focusin\" );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// Ignore IE throwing errors when focusing hidden elements\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tfindLastActive: function() {\n\t\t\tvar lastActive = this.lastActive;\n\t\t\treturn lastActive && $.grep( this.errorList, function( n ) {\n\t\t\t\treturn n.element.name === lastActive.name;\n\t\t\t} ).length === 1 && lastActive;\n\t\t},\n\n\t\telements: function() {\n\t\t\tvar validator = this,\n\t\t\t\trulesCache = {};\n\n\t\t\t// Select all valid inputs inside the form (no submit or reset buttons)\n\t\t\treturn $( this.currentForm )\n\t\t\t.find( \"input, select, textarea, [contenteditable]\" )\n\t\t\t.not( \":submit, :reset, :image, :disabled\" )\n\t\t\t.not( this.settings.ignore )\n\t\t\t.filter( function() {\n\t\t\t\tvar name = this.name || $( this ).attr( \"name\" ); // For contenteditable\n\t\t\t\tvar isContentEditable = typeof $( this ).attr( \"contenteditable\" ) !== \"undefined\" && $( this ).attr( \"contenteditable\" ) !== \"false\";\n\n\t\t\t\tif ( !name && validator.settings.debug && window.console ) {\n\t\t\t\t\tconsole.error( \"%o has no name assigned\", this );\n\t\t\t\t}\n\n\t\t\t\t// Set form expando on contenteditable\n\t\t\t\tif ( isContentEditable ) {\n\t\t\t\t\tthis.form = $( this ).closest( \"form\" )[ 0 ];\n\t\t\t\t\tthis.name = name;\n\t\t\t\t}\n\n\t\t\t\t// Ignore elements that belong to other/nested forms\n\t\t\t\tif ( this.form !== validator.currentForm ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Select only the first element for each name, and only those with rules specified\n\t\t\t\tif ( name in rulesCache || !validator.objectLength( $( this ).rules() ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\trulesCache[ name ] = true;\n\t\t\t\treturn true;\n\t\t\t} );\n\t\t},\n\n\t\tclean: function( selector ) {\n\t\t\treturn $( selector )[ 0 ];\n\t\t},\n\n\t\terrors: function() {\n\t\t\tvar errorClass = this.settings.errorClass.split( \" \" ).join( \".\" );\n\t\t\treturn $( this.settings.errorElement + \".\" + errorClass, this.errorContext );\n\t\t},\n\n\t\tresetInternals: function() {\n\t\t\tthis.successList = [];\n\t\t\tthis.errorList = [];\n\t\t\tthis.errorMap = {};\n\t\t\tthis.toShow = $( [] );\n\t\t\tthis.toHide = $( [] );\n\t\t},\n\n\t\treset: function() {\n\t\t\tthis.resetInternals();\n\t\t\tthis.currentElements = $( [] );\n\t\t},\n\n\t\tprepareForm: function() {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errors().add( this.containers );\n\t\t},\n\n\t\tprepareElement: function( element ) {\n\t\t\tthis.reset();\n\t\t\tthis.toHide = this.errorsFor( element );\n\t\t},\n\n\t\telementValue: function( element ) {\n\t\t\tvar $element = $( element ),\n\t\t\t\ttype = element.type,\n\t\t\t\tisContentEditable = typeof $element.attr( \"contenteditable\" ) !== \"undefined\" && $element.attr( \"contenteditable\" ) !== \"false\",\n\t\t\t\tval, idx;\n\n\t\t\tif ( type === \"radio\" || type === \"checkbox\" ) {\n\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).val();\n\t\t\t} else if ( type === \"number\" && typeof element.validity !== \"undefined\" ) {\n\t\t\t\treturn element.validity.badInput ? \"NaN\" : $element.val();\n\t\t\t}\n\n\t\t\tif ( isContentEditable ) {\n\t\t\t\tval = $element.text();\n\t\t\t} else {\n\t\t\t\tval = $element.val();\n\t\t\t}\n\n\t\t\tif ( type === \"file\" ) {\n\n\t\t\t\t// Modern browser (chrome & safari)\n\t\t\t\tif ( val.substr( 0, 12 ) === \"C:\\\\fakepath\\\\\" ) {\n\t\t\t\t\treturn val.substr( 12 );\n\t\t\t\t}\n\n\t\t\t\t// Legacy browsers\n\t\t\t\t// Unix-based path\n\t\t\t\tidx = val.lastIndexOf( \"/\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Windows-based path\n\t\t\t\tidx = val.lastIndexOf( \"\\\\\" );\n\t\t\t\tif ( idx >= 0 ) {\n\t\t\t\t\treturn val.substr( idx + 1 );\n\t\t\t\t}\n\n\t\t\t\t// Just the file name\n\t\t\t\treturn val;\n\t\t\t}\n\n\t\t\tif ( typeof val === \"string\" ) {\n\t\t\t\treturn val.replace( /\\r/g, \"\" );\n\t\t\t}\n\t\t\treturn val;\n\t\t},\n\n\t\tcheck: function( element ) {\n\t\t\telement = this.validationTargetFor( this.clean( element ) );\n\n\t\t\tvar rules = $( element ).rules(),\n\t\t\t\trulesCount = $.map( rules, function( n, i ) {\n\t\t\t\t\treturn i;\n\t\t\t\t} ).length,\n\t\t\t\tdependencyMismatch = false,\n\t\t\t\tval = this.elementValue( element ),\n\t\t\t\tresult, method, rule, normalizer;\n\n\t\t\t// Abort any pending Ajax request from a previous call to this method.\n\t\t\tthis.abortRequest( element );\n\n\t\t\t// Prioritize the local normalizer defined for this element over the global one\n\t\t\t// if the former exists, otherwise user the global one in case it exists.\n\t\t\tif ( typeof rules.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = rules.normalizer;\n\t\t\t} else if (\ttypeof this.settings.normalizer === \"function\" ) {\n\t\t\t\tnormalizer = this.settings.normalizer;\n\t\t\t}\n\n\t\t\t// If normalizer is defined, then call it to retreive the changed value instead\n\t\t\t// of using the real one.\n\t\t\t// Note that `this` in the normalizer is `element`.\n\t\t\tif ( normalizer ) {\n\t\t\t\tval = normalizer.call( element, val );\n\n\t\t\t\t// Delete the normalizer from rules to avoid treating it as a pre-defined method.\n\t\t\t\tdelete rules.normalizer;\n\t\t\t}\n\n\t\t\tfor ( method in rules ) {\n\t\t\t\trule = { method: method, parameters: rules[ method ] };\n\t\t\t\ttry {\n\t\t\t\t\tresult = $.validator.methods[ method ].call( this, val, element, rule.parameters );\n\n\t\t\t\t\t// If a method indicates that the field is optional and therefore valid,\n\t\t\t\t\t// don't mark it as valid when there are no other rules\n\t\t\t\t\tif ( result === \"dependency-mismatch\" && rulesCount === 1 ) {\n\t\t\t\t\t\tdependencyMismatch = true;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tdependencyMismatch = false;\n\n\t\t\t\t\tif ( result === \"pending\" ) {\n\t\t\t\t\t\tthis.toHide = this.toHide.not( this.errorsFor( element ) );\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( !result ) {\n\t\t\t\t\t\tthis.formatAndAdd( element, rule );\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t} catch ( e ) {\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.log( \"Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\", e );\n\t\t\t\t\t}\n\t\t\t\t\tif ( e instanceof TypeError ) {\n\t\t\t\t\t\te.message += \". Exception occurred when checking element \" + element.id + \", check the '\" + rule.method + \"' method.\";\n\t\t\t\t\t}\n\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( dependencyMismatch ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( this.objectLength( rules ) ) {\n\t\t\t\tthis.successList.push( element );\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t// Return the custom message for the given element and validation method\n\t\t// specified in the element's HTML5 data attribute\n\t\t// return the generic message if present and no method specific message is present\n\t\tcustomDataMessage: function( element, method ) {\n\t\t\treturn $( element ).data( \"msg\" + method.charAt( 0 ).toUpperCase() +\n\t\t\t\tmethod.substring( 1 ).toLowerCase() ) || $( element ).data( \"msg\" );\n\t\t},\n\n\t\t// Return the custom message for the given element name and validation method\n\t\tcustomMessage: function( name, method ) {\n\t\t\tvar m = this.settings.messages[ name ];\n\t\t\treturn m && ( m.constructor === String ? m : m[ method ] );\n\t\t},\n\n\t\t// Return the first defined argument, allowing empty strings\n\t\tfindDefined: function() {\n\t\t\tfor ( var i = 0; i < arguments.length; i++ ) {\n\t\t\t\tif ( arguments[ i ] !== undefined ) {\n\t\t\t\t\treturn arguments[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn undefined;\n\t\t},\n\n\t\t// The second parameter 'rule' used to be a string, and extended to an object literal\n\t\t// of the following form:\n\t\t// rule = {\n\t\t// method: \"method name\",\n\t\t// parameters: \"the given method parameters\"\n\t\t// }\n\t\t//\n\t\t// The old behavior still supported, kept to maintain backward compatibility with\n\t\t// old code, and will be removed in the next major release.\n\t\tdefaultMessage: function( element, rule ) {\n\t\t\tif ( typeof rule === \"string\" ) {\n\t\t\t\trule = { method: rule };\n\t\t\t}\n\n\t\t\tvar message = this.findDefined(\n\t\t\t\t\tthis.customMessage( element.name, rule.method ),\n\t\t\t\t\tthis.customDataMessage( element, rule.method ),\n\n\t\t\t\t\t// 'title' is never undefined, so handle empty string as undefined\n\t\t\t\t\t!this.settings.ignoreTitle && element.title || undefined,\n\t\t\t\t\t$.validator.messages[ rule.method ],\n\t\t\t\t\t\"<strong>Warning: No message defined for \" + element.name + \"</strong>\"\n\t\t\t\t),\n\t\t\t\ttheregex = /\\$?\\{(\\d+)\\}/g;\n\t\t\tif ( typeof message === \"function\" ) {\n\t\t\t\tmessage = message.call( this, rule.parameters, element );\n\t\t\t} else if ( theregex.test( message ) ) {\n\t\t\t\tmessage = $.validator.format( message.replace( theregex, \"{$1}\" ), rule.parameters );\n\t\t\t}\n\n\t\t\treturn message;\n\t\t},\n\n\t\tformatAndAdd: function( element, rule ) {\n\t\t\tvar message = this.defaultMessage( element, rule );\n\n\t\t\tthis.errorList.push( {\n\t\t\t\tmessage: message,\n\t\t\t\telement: element,\n\t\t\t\tmethod: rule.method\n\t\t\t} );\n\n\t\t\tthis.errorMap[ element.name ] = message;\n\t\t\tthis.submitted[ element.name ] = message;\n\t\t},\n\n\t\taddWrapper: function( toToggle ) {\n\t\t\tif ( this.settings.wrapper ) {\n\t\t\t\ttoToggle = toToggle.add( toToggle.parent( this.settings.wrapper ) );\n\t\t\t}\n\t\t\treturn toToggle;\n\t\t},\n\n\t\tdefaultShowErrors: function() {\n\t\t\tvar i, elements, error;\n\t\t\tfor ( i = 0; this.errorList[ i ]; i++ ) {\n\t\t\t\terror = this.errorList[ i ];\n\t\t\t\tif ( this.settings.highlight ) {\n\t\t\t\t\tthis.settings.highlight.call( this, error.element, this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t\tthis.showLabel( error.element, error.message );\n\t\t\t}\n\t\t\tif ( this.errorList.length ) {\n\t\t\t\tthis.toShow = this.toShow.add( this.containers );\n\t\t\t}\n\t\t\tif ( this.settings.success ) {\n\t\t\t\tfor ( i = 0; this.successList[ i ]; i++ ) {\n\t\t\t\t\tthis.showLabel( this.successList[ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( this.settings.unhighlight ) {\n\t\t\t\tfor ( i = 0, elements = this.validElements(); elements[ i ]; i++ ) {\n\t\t\t\t\tthis.settings.unhighlight.call( this, elements[ i ], this.settings.errorClass, this.settings.validClass );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toHide = this.toHide.not( this.toShow );\n\t\t\tthis.hideErrors();\n\t\t\tthis.addWrapper( this.toShow ).show();\n\t\t},\n\n\t\tvalidElements: function() {\n\t\t\treturn this.currentElements.not( this.invalidElements() );\n\t\t},\n\n\t\tinvalidElements: function() {\n\t\t\treturn $( this.errorList ).map( function() {\n\t\t\t\treturn this.element;\n\t\t\t} );\n\t\t},\n\n\t\tshowLabel: function( element, message ) {\n\t\t\tvar place, group, errorID, v,\n\t\t\t\terror = this.errorsFor( element ),\n\t\t\t\telementID = this.idOrName( element ),\n\t\t\t\tdescribedBy = $( element ).attr( \"aria-describedby\" );\n\n\t\t\tif ( error.length ) {\n\n\t\t\t\t// Refresh error/success class\n\t\t\t\terror.removeClass( this.settings.validClass ).addClass( this.settings.errorClass );\n\n\t\t\t\t// Replace message on existing label\n\t\t\t\tif ( this.settings && this.settings.escapeHtml ) {\n\t\t\t\t\terror.text( message || \"\" );\n\t\t\t\t} else {\n\t\t\t\t\terror.html( message || \"\" );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Create error element\n\t\t\t\terror = $( \"<\" + this.settings.errorElement + \">\" )\n\t\t\t\t\t.attr( \"id\", elementID + \"-error\" )\n\t\t\t\t\t.addClass( this.settings.errorClass );\n\n\t\t\t\tif ( this.settings && this.settings.escapeHtml ) {\n\t\t\t\t\terror.text( message || \"\" );\n\t\t\t\t} else {\n\t\t\t\t\terror.html( message || \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Maintain reference to the element to be placed into the DOM\n\t\t\t\tplace = error;\n\t\t\t\tif ( this.settings.wrapper ) {\n\n\t\t\t\t\t// Make sure the element is visible, even in IE\n\t\t\t\t\t// actually showing the wrapped element is handled elsewhere\n\t\t\t\t\tplace = error.hide().show().wrap( \"<\" + this.settings.wrapper + \"/>\" ).parent();\n\t\t\t\t}\n\t\t\t\tif ( this.labelContainer.length ) {\n\t\t\t\t\tthis.labelContainer.append( place );\n\t\t\t\t} else if ( this.settings.errorPlacement ) {\n\t\t\t\t\tthis.settings.errorPlacement.call( this, place, $( element ) );\n\t\t\t\t} else {\n\t\t\t\t\tplace.insertAfter( element );\n\t\t\t\t}\n\n\t\t\t\t// Link error back to the element\n\t\t\t\tif ( error.is( \"label\" ) ) {\n\n\t\t\t\t\t// If the error is a label, then associate using 'for'\n\t\t\t\t\terror.attr( \"for\", elementID );\n\n\t\t\t\t\t// If the element is not a child of an associated label, then it's necessary\n\t\t\t\t\t// to explicitly apply aria-describedby\n\t\t\t\t} else if ( error.parents( \"label[for='\" + this.escapeCssMeta( elementID ) + \"']\" ).length === 0 ) {\n\t\t\t\t\terrorID = error.attr( \"id\" );\n\n\t\t\t\t\t// Respect existing non-error aria-describedby\n\t\t\t\t\tif ( !describedBy ) {\n\t\t\t\t\t\tdescribedBy = errorID;\n\t\t\t\t\t} else if ( !describedBy.match( new RegExp( \"\\\\b\" + this.escapeCssMeta( errorID ) + \"\\\\b\" ) ) ) {\n\n\t\t\t\t\t\t// Add to end of list if not already present\n\t\t\t\t\t\tdescribedBy += \" \" + errorID;\n\t\t\t\t\t}\n\t\t\t\t\t$( element ).attr( \"aria-describedby\", describedBy );\n\n\t\t\t\t\t// If this element is grouped, then assign to all elements in the same group\n\t\t\t\t\tgroup = this.groups[ element.name ];\n\t\t\t\t\tif ( group ) {\n\t\t\t\t\t\tv = this;\n\t\t\t\t\t\t$.each( v.groups, function( name, testgroup ) {\n\t\t\t\t\t\t\tif ( testgroup === group ) {\n\t\t\t\t\t\t\t\t$( \"[name='\" + v.escapeCssMeta( name ) + \"']\", v.currentForm )\n\t\t\t\t\t\t\t\t\t.attr( \"aria-describedby\", error.attr( \"id\" ) );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( !message && this.settings.success ) {\n\t\t\t\terror.text( \"\" );\n\t\t\t\tif ( typeof this.settings.success === \"string\" ) {\n\t\t\t\t\terror.addClass( this.settings.success );\n\t\t\t\t} else {\n\t\t\t\t\tthis.settings.success( error, element );\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.toShow = this.toShow.add( error );\n\t\t},\n\n\t\terrorsFor: function( element ) {\n\t\t\tvar name = this.escapeCssMeta( this.idOrName( element ) ),\n\t\t\t\tdescriber = $( element ).attr( \"aria-describedby\" ),\n\t\t\t\tselector = \"label[for='\" + name + \"'], label[for='\" + name + \"'] *\";\n\n\t\t\t// 'aria-describedby' should directly reference the error element\n\t\t\tif ( describer ) {\n\t\t\t\tselector = selector + \", #\" + this.escapeCssMeta( describer )\n\t\t\t\t\t.replace( /\\s+/g, \", #\" );\n\t\t\t}\n\n\t\t\treturn this\n\t\t\t\t.errors()\n\t\t\t\t.filter( selector );\n\t\t},\n\n\t\t// See https://api.jquery.com/category/selectors/, for CSS\n\t\t// meta-characters that should be escaped in order to be used with JQuery\n\t\t// as a literal part of a name/id or any selector.\n\t\tescapeCssMeta: function( string ) {\n\t\t\tif ( string === undefined ) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\n\t\t\treturn string.replace( /([\\\\!\"#$%&'()*+,./:;<=>?@\\[\\]^`{|}~])/g, \"\\\\$1\" );\n\t\t},\n\n\t\tidOrName: function( element ) {\n\t\t\treturn this.groups[ element.name ] || ( this.checkable( element ) ? element.name : element.id || element.name );\n\t\t},\n\n\t\tvalidationTargetFor: function( element ) {\n\n\t\t\t// If radio/checkbox, validate first element in group instead\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\telement = this.findByName( element.name );\n\t\t\t}\n\n\t\t\t// Always apply ignore filter\n\t\t\treturn $( element ).not( this.settings.ignore )[ 0 ];\n\t\t},\n\n\t\tcheckable: function( element ) {\n\t\t\treturn ( /radio|checkbox/i ).test( element.type );\n\t\t},\n\n\t\tfindByName: function( name ) {\n\t\t\treturn $( this.currentForm ).find( \"[name='\" + this.escapeCssMeta( name ) + \"']\" );\n\t\t},\n\n\t\tgetLength: function( value, element ) {\n\t\t\tswitch ( element.nodeName.toLowerCase() ) {\n\t\t\tcase \"select\":\n\t\t\t\treturn $( \"option:selected\", element ).length;\n\t\t\tcase \"input\":\n\t\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\t\treturn this.findByName( element.name ).filter( \":checked\" ).length;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value.length;\n\t\t},\n\n\t\tdepend: function( param, element ) {\n\t\t\treturn this.dependTypes[ typeof param ] ? this.dependTypes[ typeof param ]( param, element ) : true;\n\t\t},\n\n\t\tdependTypes: {\n\t\t\t\"boolean\": function( param ) {\n\t\t\t\treturn param;\n\t\t\t},\n\t\t\t\"string\": function( param, element ) {\n\t\t\t\treturn !!$( param, element.form ).length;\n\t\t\t},\n\t\t\t\"function\": function( param, element ) {\n\t\t\t\treturn param( element );\n\t\t\t}\n\t\t},\n\n\t\toptional: function( element ) {\n\t\t\tvar val = this.elementValue( element );\n\t\t\treturn !$.validator.methods.required.call( this, val, element ) && \"dependency-mismatch\";\n\t\t},\n\n\t\telementAjaxPort: function( element ) {\n\t\t\treturn \"validate\" + element.name;\n\t\t},\n\n\t\tstartRequest: function( element ) {\n\t\t\tif ( !this.pending[ element.name ] ) {\n\t\t\t\tthis.pendingRequest++;\n\t\t\t\t$( element ).addClass( this.settings.pendingClass );\n\t\t\t\tthis.pending[ element.name ] = true;\n\t\t\t}\n\t\t},\n\n\t\tstopRequest: function( element, valid ) {\n\t\t\tthis.pendingRequest--;\n\n\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\tthis.pendingRequest = 0;\n\t\t\t}\n\t\t\tdelete this.pending[ element.name ];\n\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\tif ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() && this.pendingRequest === 0 ) {\n\t\t\t\t$( this.currentForm ).trigger( \"submit\" );\n\n\t\t\t\t// Remove the hidden input that was used as a replacement for the\n\t\t\t\t// missing submit button. The hidden input is added by `handle()`\n\t\t\t\t// to ensure that the value of the used submit button is passed on\n\t\t\t\t// for scripted submits triggered by this method\n\t\t\t\tif ( this.submitButton ) {\n\t\t\t\t\t$( \"input:hidden[name='\" + this.submitButton.name + \"']\", this.currentForm ).remove();\n\t\t\t\t}\n\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t} else if ( !valid && this.pendingRequest === 0 && this.formSubmitted ) {\n\t\t\t\t$( this.currentForm ).triggerHandler( \"invalid-form\", [ this ] );\n\t\t\t\tthis.formSubmitted = false;\n\t\t\t}\n\t\t},\n\n\t\tabortRequest: function( element ) {\n\t\t\tvar port;\n\n\t\t\tif ( this.pending[ element.name ] ) {\n\t\t\t\tport = this.elementAjaxPort( element );\n\t\t\t\t$.ajaxAbort( port );\n\n\t\t\t\tthis.pendingRequest--;\n\n\t\t\t\t// Sometimes synchronization fails, make sure pendingRequest is never < 0\n\t\t\t\tif ( this.pendingRequest < 0 ) {\n\t\t\t\t\tthis.pendingRequest = 0;\n\t\t\t\t}\n\n\t\t\t\tdelete this.pending[ element.name ];\n\t\t\t\t$( element ).removeClass( this.settings.pendingClass );\n\t\t\t}\n\t\t},\n\n\t\tpreviousValue: function( element, method ) {\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\treturn $.data( element, \"previousValue\" ) || $.data( element, \"previousValue\", {\n\t\t\t\told: null,\n\t\t\t\tvalid: true,\n\t\t\t\tmessage: this.defaultMessage( element, { method: method } )\n\t\t\t} );\n\t\t},\n\n\t\t// Cleans up all forms and elements, removes validator-specific events\n\t\tdestroy: function() {\n\t\t\tthis.resetForm();\n\n\t\t\t$( this.currentForm )\n\t\t\t\t.off( \".validate\" )\n\t\t\t\t.removeData( \"validator\" )\n\t\t\t\t.find( \".validate-equalTo-blur\" )\n\t\t\t\t\t.off( \".validate-equalTo\" )\n\t\t\t\t\t.removeClass( \"validate-equalTo-blur\" )\n\t\t\t\t.find( \".validate-lessThan-blur\" )\n\t\t\t\t\t.off( \".validate-lessThan\" )\n\t\t\t\t\t.removeClass( \"validate-lessThan-blur\" )\n\t\t\t\t.find( \".validate-lessThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-lessThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-lessThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThanEqual-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThanEqual\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThanEqual-blur\" )\n\t\t\t\t.find( \".validate-greaterThan-blur\" )\n\t\t\t\t\t.off( \".validate-greaterThan\" )\n\t\t\t\t\t.removeClass( \"validate-greaterThan-blur\" );\n\t\t}\n\n\t},\n\n\tclassRuleSettings: {\n\t\trequired: { required: true },\n\t\temail: { email: true },\n\t\turl: { url: true },\n\t\tdate: { date: true },\n\t\tdateISO: { dateISO: true },\n\t\tnumber: { number: true },\n\t\tdigits: { digits: true },\n\t\tcreditcard: { creditcard: true }\n\t},\n\n\taddClassRules: function( className, rules ) {\n\t\tif ( className.constructor === String ) {\n\t\t\tthis.classRuleSettings[ className ] = rules;\n\t\t} else {\n\t\t\t$.extend( this.classRuleSettings, className );\n\t\t}\n\t},\n\n\tclassRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tclasses = $( element ).attr( \"class\" );\n\n\t\tif ( classes ) {\n\t\t\t$.each( classes.split( \" \" ), function() {\n\t\t\t\tif ( this in $.validator.classRuleSettings ) {\n\t\t\t\t\t$.extend( rules, $.validator.classRuleSettings[ this ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeAttributeRule: function( rules, type, method, value ) {\n\n\t\t// Convert the value to a number for number inputs, and for text for backwards compability\n\t\t// allows type=\"date\" and others to be compared as strings\n\t\tif ( /min|max|step/.test( method ) && ( type === null || /number|range|text/.test( type ) ) ) {\n\t\t\tvalue = Number( value );\n\n\t\t\t// Support Opera Mini, which returns NaN for undefined minlength\n\t\t\tif ( isNaN( value ) ) {\n\t\t\t\tvalue = undefined;\n\t\t\t}\n\t\t}\n\n\t\tif ( value || value === 0 ) {\n\t\t\trules[ method ] = value;\n\t\t} else if ( type === method && type !== \"range\" ) {\n\n\t\t\t// Exception: the jquery validate 'range' method\n\t\t\t// does not test for the html5 'range' type\n\t\t\trules[ type === \"date\" ? \"dateISO\" : method ] = true;\n\t\t}\n\t},\n\n\tattributeRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\n\t\t\t// Support for <input required> in both html5 and older browsers\n\t\t\tif ( method === \"required\" ) {\n\t\t\t\tvalue = element.getAttribute( method );\n\n\t\t\t\t// Some browsers return an empty string for the required attribute\n\t\t\t\t// and non-HTML5 browsers might have required=\"\" markup\n\t\t\t\tif ( value === \"\" ) {\n\t\t\t\t\tvalue = true;\n\t\t\t\t}\n\n\t\t\t\t// Force non-HTML5 browsers to return bool\n\t\t\t\tvalue = !!value;\n\t\t\t} else {\n\t\t\t\tvalue = $element.attr( method );\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\n\t\t// 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs\n\t\tif ( rules.maxlength && /-1|2147483647|524288/.test( rules.maxlength ) ) {\n\t\t\tdelete rules.maxlength;\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\tdataRules: function( element ) {\n\t\tvar rules = {},\n\t\t\t$element = $( element ),\n\t\t\ttype = element.getAttribute( \"type\" ),\n\t\t\tmethod, value;\n\n\t\tfor ( method in $.validator.methods ) {\n\t\t\tvalue = $element.data( \"rule\" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );\n\n\t\t\t// Cast empty attributes like `data-rule-required` to `true`\n\t\t\tif ( value === \"\" ) {\n\t\t\t\tvalue = true;\n\t\t\t}\n\n\t\t\tthis.normalizeAttributeRule( rules, type, method, value );\n\t\t}\n\t\treturn rules;\n\t},\n\n\tstaticRules: function( element ) {\n\t\tvar rules = {},\n\t\t\tvalidator = $.data( element.form, \"validator\" );\n\n\t\tif ( validator.settings.rules ) {\n\t\t\trules = $.validator.normalizeRule( validator.settings.rules[ element.name ] ) || {};\n\t\t}\n\t\treturn rules;\n\t},\n\n\tnormalizeRules: function( rules, element ) {\n\n\t\t// Handle dependency check\n\t\t$.each( rules, function( prop, val ) {\n\n\t\t\t// Ignore rule when param is explicitly false, eg. required:false\n\t\t\tif ( val === false ) {\n\t\t\t\tdelete rules[ prop ];\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif ( val.param || val.depends ) {\n\t\t\t\tvar keepRule = true;\n\t\t\t\tswitch ( typeof val.depends ) {\n\t\t\t\tcase \"string\":\n\t\t\t\t\tkeepRule = !!$( val.depends, element.form ).length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"function\":\n\t\t\t\t\tkeepRule = val.depends.call( element, element );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif ( keepRule ) {\n\t\t\t\t\trules[ prop ] = val.param !== undefined ? val.param : true;\n\t\t\t\t} else {\n\t\t\t\t\t$.data( element.form, \"validator\" ).resetElements( $( element ) );\n\t\t\t\t\tdelete rules[ prop ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\t// Evaluate parameters\n\t\t$.each( rules, function( rule, parameter ) {\n\t\t\trules[ rule ] = typeof parameter === \"function\" && rule !== \"normalizer\" ? parameter( element ) : parameter;\n\t\t} );\n\n\t\t// Clean number parameters\n\t\t$.each( [ \"minlength\", \"maxlength\" ], function() {\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\trules[ this ] = Number( rules[ this ] );\n\t\t\t}\n\t\t} );\n\t\t$.each( [ \"rangelength\", \"range\" ], function() {\n\t\t\tvar parts;\n\t\t\tif ( rules[ this ] ) {\n\t\t\t\tif ( Array.isArray( rules[ this ] ) ) {\n\t\t\t\t\trules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ];\n\t\t\t\t} else if ( typeof rules[ this ] === \"string\" ) {\n\t\t\t\t\tparts = rules[ this ].replace( /[\\[\\]]/g, \"\" ).split( /[\\s,]+/ );\n\t\t\t\t\trules[ this ] = [ Number( parts[ 0 ] ), Number( parts[ 1 ] ) ];\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\n\t\tif ( $.validator.autoCreateRanges ) {\n\n\t\t\t// Auto-create ranges\n\t\t\tif ( rules.min != null && rules.max != null ) {\n\t\t\t\trules.range = [ rules.min, rules.max ];\n\t\t\t\tdelete rules.min;\n\t\t\t\tdelete rules.max;\n\t\t\t}\n\t\t\tif ( rules.minlength != null && rules.maxlength != null ) {\n\t\t\t\trules.rangelength = [ rules.minlength, rules.maxlength ];\n\t\t\t\tdelete rules.minlength;\n\t\t\t\tdelete rules.maxlength;\n\t\t\t}\n\t\t}\n\n\t\treturn rules;\n\t},\n\n\t// Converts a simple string to a {string: true} rule, e.g., \"required\" to {required:true}\n\tnormalizeRule: function( data ) {\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tvar transformed = {};\n\t\t\t$.each( data.split( /\\s/ ), function() {\n\t\t\t\ttransformed[ this ] = true;\n\t\t\t} );\n\t\t\tdata = transformed;\n\t\t}\n\t\treturn data;\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.addMethod/\n\taddMethod: function( name, method, message ) {\n\t\t$.validator.methods[ name ] = method;\n\t\t$.validator.messages[ name ] = message !== undefined ? message : $.validator.messages[ name ];\n\t\tif ( method.length < 3 ) {\n\t\t\t$.validator.addClassRules( name, $.validator.normalizeRule( name ) );\n\t\t}\n\t},\n\n\t// https://jqueryvalidation.org/jQuery.validator.methods/\n\tmethods: {\n\n\t\t// https://jqueryvalidation.org/required-method/\n\t\trequired: function( value, element, param ) {\n\n\t\t\t// Check if dependency is met\n\t\t\tif ( !this.depend( param, element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\t\t\tif ( element.nodeName.toLowerCase() === \"select\" ) {\n\n\t\t\t\t// Could be an array for select-multiple or a string, both are fine this way\n\t\t\t\tvar val = $( element ).val();\n\t\t\t\treturn val && val.length > 0;\n\t\t\t}\n\t\t\tif ( this.checkable( element ) ) {\n\t\t\t\treturn this.getLength( value, element ) > 0;\n\t\t\t}\n\t\t\treturn value !== undefined && value !== null && value.length > 0;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/email-method/\n\t\temail: function( value, element ) {\n\n\t\t\t// From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address\n\t\t\t// Retrieved 2014-01-14\n\t\t\t// If you have a problem with this implementation, report a bug against the above spec\n\t\t\t// Or use custom methods to implement your own email validation\n\t\t\treturn this.optional( element ) || /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/url-method/\n\t\turl: function( value, element ) {\n\n\t\t\t// Copyright (c) 2010-2013 Diego Perini, MIT licensed\n\t\t\t// https://gist.github.com/dperini/729294\n\t\t\t// see also https://mathiasbynens.be/demo/url-regex\n\t\t\t// modified to allow protocol-relative URLs\n\t\t\treturn this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\\/\\/)(?:(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\\]\\[?\\/<~#`!@$^&*()+=}|:\";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\\.\\d{1,3}){3})(?!(?:169\\.254|192\\.168)(?:\\.\\d{1,3}){2})(?!172\\.(?:1[6-9]|2\\d|3[0-1])(?:\\.\\d{1,3}){2})(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[1-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z0-9\\u00a1-\\uffff][a-z0-9\\u00a1-\\uffff_-]{0,62})?[a-z0-9\\u00a1-\\uffff]\\.)+(?:[a-z\\u00a1-\\uffff]{2,}\\.?))(?::\\d{2,5})?(?:[/?#]\\S*)?$/i.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/date-method/\n\t\tdate: ( function() {\n\t\t\tvar called = false;\n\n\t\t\treturn function( value, element ) {\n\t\t\t\tif ( !called ) {\n\t\t\t\t\tcalled = true;\n\t\t\t\t\tif ( this.settings.debug && window.console ) {\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t\"The `date` method is deprecated and will be removed in version '2.0.0'.\\n\" +\n\t\t\t\t\t\t\t\"Please don't use it, since it relies on the Date constructor, which\\n\" +\n\t\t\t\t\t\t\t\"behaves very differently across browsers and locales. Use `dateISO`\\n\" +\n\t\t\t\t\t\t\t\"instead or one of the locale specific methods in `localizations/`\\n\" +\n\t\t\t\t\t\t\t\"and `additional-methods.js`.\"\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn this.optional( element ) || !/Invalid|NaN/.test( new Date( value ).toString() );\n\t\t\t};\n\t\t}() ),\n\n\t\t// https://jqueryvalidation.org/dateISO-method/\n\t\tdateISO: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d{4}[\\/\\-](0?[1-9]|1[012])[\\/\\-](0?[1-9]|[12][0-9]|3[01])$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/number-method/\n\t\tnumber: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/digits-method/\n\t\tdigits: function( value, element ) {\n\t\t\treturn this.optional( element ) || /^\\d+$/.test( value );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/minlength-method/\n\t\tminlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/maxlength-method/\n\t\tmaxlength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || length <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/rangelength-method/\n\t\trangelength: function( value, element, param ) {\n\t\t\tvar length = Array.isArray( value ) ? value.length : this.getLength( value, element );\n\t\t\treturn this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/min-method/\n\t\tmin: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value >= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/max-method/\n\t\tmax: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || value <= param;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/range-method/\n\t\trange: function( value, element, param ) {\n\t\t\treturn this.optional( element ) || ( value >= param[ 0 ] && value <= param[ 1 ] );\n\t\t},\n\n\t\t// https://jqueryvalidation.org/step-method/\n\t\tstep: function( value, element, param ) {\n\t\t\tvar type = $( element ).attr( \"type\" ),\n\t\t\t\terrorMessage = \"Step attribute on input type \" + type + \" is not supported.\",\n\t\t\t\tsupportedTypes = [ \"text\", \"number\", \"range\" ],\n\t\t\t\tre = new RegExp( \"\\\\b\" + type + \"\\\\b\" ),\n\t\t\t\tnotSupported = type && !re.test( supportedTypes.join() ),\n\t\t\t\tdecimalPlaces = function( num ) {\n\t\t\t\t\tvar match = ( \"\" + num ).match( /(?:\\.(\\d+))?$/ );\n\t\t\t\t\tif ( !match ) {\n\t\t\t\t\t\treturn 0;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Number of digits right of decimal point.\n\t\t\t\t\treturn match[ 1 ] ? match[ 1 ].length : 0;\n\t\t\t\t},\n\t\t\t\ttoInt = function( num ) {\n\t\t\t\t\treturn Math.round( num * Math.pow( 10, decimals ) );\n\t\t\t\t},\n\t\t\t\tvalid = true,\n\t\t\t\tdecimals;\n\n\t\t\t// Works only for text, number and range input types\n\t\t\t// TODO find a way to support input types date, datetime, datetime-local, month, time and week\n\t\t\tif ( notSupported ) {\n\t\t\t\tthrow new Error( errorMessage );\n\t\t\t}\n\n\t\t\tdecimals = decimalPlaces( param );\n\n\t\t\t// Value can't have too many decimals\n\t\t\tif ( decimalPlaces( value ) > decimals || toInt( value ) % toInt( param ) !== 0 ) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\n\t\t\treturn this.optional( element ) || valid;\n\t\t},\n\n\t\t// https://jqueryvalidation.org/equalTo-method/\n\t\tequalTo: function( value, element, param ) {\n\n\t\t\t// Bind to the blur event of the target in order to revalidate whenever the target field is updated\n\t\t\tvar target = $( param );\n\t\t\tif ( this.settings.onfocusout && target.not( \".validate-equalTo-blur\" ).length ) {\n\t\t\t\ttarget.addClass( \"validate-equalTo-blur\" ).on( \"blur.validate-equalTo\", function() {\n\t\t\t\t\t$( element ).valid();\n\t\t\t\t} );\n\t\t\t}\n\t\t\treturn value === target.val();\n\t\t},\n\n\t\t// https://jqueryvalidation.org/remote-method/\n\t\tremote: function( value, element, param, method ) {\n\t\t\tif ( this.optional( element ) ) {\n\t\t\t\treturn \"dependency-mismatch\";\n\t\t\t}\n\n\t\t\tmethod = typeof method === \"string\" && method || \"remote\";\n\n\t\t\tvar previous = this.previousValue( element, method ),\n\t\t\t\tvalidator, data, optionDataString;\n\n\t\t\tif ( !this.settings.messages[ element.name ] ) {\n\t\t\t\tthis.settings.messages[ element.name ] = {};\n\t\t\t}\n\t\t\tprevious.originalMessage = previous.originalMessage || this.settings.messages[ element.name ][ method ];\n\t\t\tthis.settings.messages[ element.name ][ method ] = previous.message;\n\n\t\t\tparam = typeof param === \"string\" && { url: param } || param;\n\t\t\toptionDataString = $.param( $.extend( { data: value }, param.data ) );\n\t\t\tif ( previous.old === optionDataString ) {\n\t\t\t\treturn previous.valid;\n\t\t\t}\n\n\t\t\tprevious.old = optionDataString;\n\t\t\tvalidator = this;\n\t\t\tthis.startRequest( element );\n\t\t\tdata = {};\n\t\t\tdata[ element.name ] = value;\n\t\t\t$.ajax( $.extend( true, {\n\t\t\t\tmode: \"abort\",\n\t\t\t\tport: this.elementAjaxPort( element ),\n\t\t\t\tdataType: \"json\",\n\t\t\t\tdata: data,\n\t\t\t\tcontext: validator.currentForm,\n\t\t\t\tsuccess: function( response ) {\n\t\t\t\t\tvar valid = response === true || response === \"true\",\n\t\t\t\t\t\terrors, message, submitted;\n\n\t\t\t\t\tvalidator.settings.messages[ element.name ][ method ] = previous.originalMessage;\n\t\t\t\t\tif ( valid ) {\n\t\t\t\t\t\tsubmitted = validator.formSubmitted;\n\t\t\t\t\t\tvalidator.toHide = validator.errorsFor( element );\n\t\t\t\t\t\tvalidator.formSubmitted = submitted;\n\t\t\t\t\t\tvalidator.successList.push( element );\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = false;\n\t\t\t\t\t\tvalidator.showErrors();\n\t\t\t\t\t} else {\n\t\t\t\t\t\terrors = {};\n\t\t\t\t\t\tmessage = response || validator.defaultMessage( element, { method: method, parameters: value } );\n\t\t\t\t\t\terrors[ element.name ] = previous.message = message;\n\t\t\t\t\t\tvalidator.invalid[ element.name ] = true;\n\t\t\t\t\t\tvalidator.showErrors( errors );\n\t\t\t\t\t}\n\t\t\t\t\tprevious.valid = valid;\n\t\t\t\t\tvalidator.stopRequest( element, valid );\n\t\t\t\t}\n\t\t\t}, param ) );\n\t\t\treturn \"pending\";\n\t\t}\n\t}\n\n} );\n\n// Ajax mode: abort\n// usage: $.ajax({ mode: \"abort\"[, port: \"uniqueport\"]});\n// $.ajaxAbort( port );\n// if mode:\"abort\" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort()\n\nvar pendingRequests = {},\n\tajax;\n\n// Use a prefilter if available (1.5+)\nif ( $.ajaxPrefilter ) {\n\t$.ajaxPrefilter( function( settings, _, xhr ) {\n\t\tvar port = settings.port;\n\t\tif ( settings.mode === \"abort\" ) {\n\t\t\t$.ajaxAbort( port );\n\t\t\tpendingRequests[ port ] = xhr;\n\t\t}\n\t} );\n} else {\n\n\t// Proxy ajax\n\tajax = $.ajax;\n\t$.ajax = function( settings ) {\n\t\tvar mode = ( \"mode\" in settings ? settings : $.ajaxSettings ).mode,\n\t\t\tport = ( \"port\" in settings ? settings : $.ajaxSettings ).port;\n\t\tif ( mode === \"abort\" ) {\n\t\t\t$.ajaxAbort( port );\n\t\t\tpendingRequests[ port ] = ajax.apply( this, arguments );\n\t\t\treturn pendingRequests[ port ];\n\t\t}\n\t\treturn ajax.apply( this, arguments );\n\t};\n}\n\n// Abort the previous request without sending a new one\n$.ajaxAbort = function( port ) {\n\tif ( pendingRequests[ port ] ) {\n\t\tpendingRequests[ port ].abort();\n\t\tdelete pendingRequests[ port ];\n\t}\n};\nreturn $;\n}));","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this\n\t\t\t.on( \"mouseenter\", fnOver )\n\t\t\t.on( \"mouseleave\", fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate (y) {\n var date;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays (ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays :\n this._weekdays[(m && m !== true && this._weekdays.isFormat.test(format)) ? 'format' : 'standalone'];\n return (m === true) ? shiftWeekdays(weekdays, this._week.dow)\n : (m) ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m === true) ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n var basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return (dividend % divisor + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf (units) {\n var time;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month': return months;\n case 'quarter': return months / 3;\n case 'year': return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.24.0';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'GGGG-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n\n})));\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value <img sizes=\"here\">\n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * <source-size-list> = <source-size># [ , <source-size-value> ]? | <source-size-value>\n\t * <source-size> = <media-condition> <source-size-value>\n\t * <source-size-value> = <length>\n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid <css-length> with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for <number> type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive <whitespace-token>s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// <source-size-value>, let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive <whitespace-token>s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// <media-condition>. If it does not parse correctly, or it does parse\n\t\t\t// correctly but the <media-condition> evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar ANIMATION_STATE_CLASSES = {\n animating: 'rah-animating',\n animatingUp: 'rah-animating--up',\n animatingDown: 'rah-animating--down',\n animatingToHeightZero: 'rah-animating--to-height-zero',\n animatingToHeightAuto: 'rah-animating--to-height-auto',\n animatingToHeightSpecific: 'rah-animating--to-height-specific',\n static: 'rah-static',\n staticHeightZero: 'rah-static--height-zero',\n staticHeightAuto: 'rah-static--height-auto',\n staticHeightSpecific: 'rah-static--height-specific'\n};\n\nvar PROPS_TO_OMIT = ['animateOpacity', 'animationStateClasses', 'applyInlineTransitions', 'children', 'contentClassName', 'delay', 'duration', 'easing', 'height', 'onAnimationEnd', 'onAnimationStart'];\n\nfunction omit(obj) {\n for (var _len = arguments.length, keys = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n if (!keys.length) {\n return obj;\n }\n\n var res = {};\n var objectKeys = Object.keys(obj);\n\n for (var i = 0; i < objectKeys.length; i++) {\n var key = objectKeys[i];\n\n if (keys.indexOf(key) === -1) {\n res[key] = obj[key];\n }\n }\n\n return res;\n}\n\n// Start animation helper using nested requestAnimationFrames\nfunction startAnimationHelper(callback) {\n var requestAnimationFrameIDs = [];\n\n requestAnimationFrameIDs[0] = requestAnimationFrame(function () {\n requestAnimationFrameIDs[1] = requestAnimationFrame(function () {\n callback();\n });\n });\n\n return requestAnimationFrameIDs;\n}\n\nfunction cancelAnimationFrames(requestAnimationFrameIDs) {\n requestAnimationFrameIDs.forEach(function (id) {\n return cancelAnimationFrame(id);\n });\n}\n\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\n\nfunction isPercentage(height) {\n // Percentage height\n return typeof height === 'string' && height.search('%') === height.length - 1 && isNumber(height.substr(0, height.length - 1));\n}\n\nfunction runCallback(callback, params) {\n if (callback && typeof callback === 'function') {\n callback(params);\n }\n}\n\nvar AnimateHeight = function (_React$Component) {\n _inherits(AnimateHeight, _React$Component);\n\n function AnimateHeight(props) {\n _classCallCheck(this, AnimateHeight);\n\n var _this = _possibleConstructorReturn(this, (AnimateHeight.__proto__ || Object.getPrototypeOf(AnimateHeight)).call(this, props));\n\n _this.animationFrameIDs = [];\n\n var height = 'auto';\n var overflow = 'visible';\n\n if (isNumber(props.height)) {\n // If value is string \"0\" make sure we convert it to number 0\n height = props.height < 0 || props.height === '0' ? 0 : props.height;\n overflow = 'hidden';\n } else if (isPercentage(props.height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n height = props.height === '0%' ? 0 : props.height;\n overflow = 'hidden';\n }\n\n _this.animationStateClasses = _extends({}, ANIMATION_STATE_CLASSES, props.animationStateClasses);\n\n var animationStateClasses = _this.getStaticStateClasses(height);\n\n _this.state = {\n animationStateClasses: animationStateClasses,\n height: height,\n overflow: overflow,\n shouldUseTransitions: false\n };\n return _this;\n }\n\n _createClass(AnimateHeight, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var height = this.state.height;\n\n // Hide content if height is 0 (to prevent tabbing into it)\n // Check for contentElement is added cause this would fail in tests (react-test-renderer)\n // Read more here: https://github.com/Stanko/react-animate-height/issues/17\n\n if (this.contentElement && this.contentElement.style) {\n this.hideContent(height);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps, prevState) {\n var _this2 = this;\n\n var _props = this.props,\n delay = _props.delay,\n duration = _props.duration,\n height = _props.height,\n onAnimationEnd = _props.onAnimationEnd,\n onAnimationStart = _props.onAnimationStart;\n\n // Check if 'height' prop has changed\n\n if (this.contentElement && height !== prevProps.height) {\n var _cx;\n\n // Remove display: none from the content div\n // if it was hidden to prevent tabbing into it\n this.showContent(prevState.height);\n\n // Cache content height\n this.contentElement.style.overflow = 'hidden';\n var contentHeight = this.contentElement.offsetHeight;\n this.contentElement.style.overflow = '';\n\n // set total animation time\n var totalDuration = duration + delay;\n\n var newHeight = null;\n var timeoutState = {\n height: null, // it will be always set to either 'auto' or specific number\n overflow: 'hidden'\n };\n var isCurrentHeightAuto = prevState.height === 'auto';\n\n if (isNumber(height)) {\n // If value is string \"0\" make sure we convert it to number 0\n newHeight = height < 0 || height === '0' ? 0 : height;\n timeoutState.height = newHeight;\n } else if (isPercentage(height)) {\n // If value is string \"0%\" make sure we convert it to number 0\n newHeight = height === '0%' ? 0 : height;\n timeoutState.height = newHeight;\n } else {\n // If not, animate to content height\n // and then reset to auto\n newHeight = contentHeight; // TODO solve contentHeight = 0\n timeoutState.height = 'auto';\n timeoutState.overflow = null;\n }\n\n if (isCurrentHeightAuto) {\n // This is the height to be animated to\n timeoutState.height = newHeight;\n\n // If previous height was 'auto'\n // set starting height explicitly to be able to use transition\n newHeight = contentHeight;\n }\n\n // Animation classes\n var animationStateClasses = (0, _classnames2.default)((_cx = {}, _defineProperty(_cx, this.animationStateClasses.animating, true), _defineProperty(_cx, this.animationStateClasses.animatingUp, prevProps.height === 'auto' || height < prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingDown, height === 'auto' || height > prevProps.height), _defineProperty(_cx, this.animationStateClasses.animatingToHeightZero, timeoutState.height === 0), _defineProperty(_cx, this.animationStateClasses.animatingToHeightAuto, timeoutState.height === 'auto'), _defineProperty(_cx, this.animationStateClasses.animatingToHeightSpecific, timeoutState.height > 0), _cx));\n\n // Animation classes to be put after animation is complete\n var timeoutAnimationStateClasses = this.getStaticStateClasses(timeoutState.height);\n\n // Set starting height and animating classes\n // We are safe to call set state as it will not trigger infinite loop\n // because of the \"height !== prevProps.height\" check\n this.setState({ // eslint-disable-line react/no-did-update-set-state\n animationStateClasses: animationStateClasses,\n height: newHeight,\n overflow: 'hidden',\n // When animating from 'auto' we first need to set fixed height\n // that change should be animated\n shouldUseTransitions: !isCurrentHeightAuto\n });\n\n // Clear timeouts\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n\n if (isCurrentHeightAuto) {\n // When animating from 'auto' we use a short timeout to start animation\n // after setting fixed height above\n timeoutState.shouldUseTransitions = true;\n\n cancelAnimationFrames(this.animationFrameIDs);\n this.animationFrameIDs = startAnimationHelper(function () {\n _this2.setState(timeoutState);\n\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: timeoutState.height });\n });\n\n // Set static classes and remove transitions when animation ends\n this.animationClassesTimeoutID = setTimeout(function () {\n _this2.setState({\n animationStateClasses: timeoutAnimationStateClasses,\n shouldUseTransitions: false\n });\n\n // ANIMATION ENDS\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(timeoutState.height);\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: timeoutState.height });\n }, totalDuration);\n } else {\n // ANIMATION STARTS, run a callback if it exists\n runCallback(onAnimationStart, { newHeight: newHeight });\n\n // Set end height, classes and remove transitions when animation is complete\n this.timeoutID = setTimeout(function () {\n timeoutState.animationStateClasses = timeoutAnimationStateClasses;\n timeoutState.shouldUseTransitions = false;\n\n _this2.setState(timeoutState);\n\n // ANIMATION ENDS\n // If height is auto, don't hide the content\n // (case when element is empty, therefore height is 0)\n if (height !== 'auto') {\n // Hide content if height is 0 (to prevent tabbing into it)\n _this2.hideContent(newHeight); // TODO solve newHeight = 0\n }\n // Run a callback if it exists\n runCallback(onAnimationEnd, { newHeight: newHeight });\n }, totalDuration);\n }\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n cancelAnimationFrames(this.animationFrameIDs);\n\n clearTimeout(this.timeoutID);\n clearTimeout(this.animationClassesTimeoutID);\n\n this.timeoutID = null;\n this.animationClassesTimeoutID = null;\n this.animationStateClasses = null;\n }\n }, {\n key: 'showContent',\n value: function showContent(height) {\n if (height === 0) {\n this.contentElement.style.display = '';\n }\n }\n }, {\n key: 'hideContent',\n value: function hideContent(newHeight) {\n if (newHeight === 0) {\n this.contentElement.style.display = 'none';\n }\n }\n }, {\n key: 'getStaticStateClasses',\n value: function getStaticStateClasses(height) {\n var _cx2;\n\n return (0, _classnames2.default)((_cx2 = {}, _defineProperty(_cx2, this.animationStateClasses.static, true), _defineProperty(_cx2, this.animationStateClasses.staticHeightZero, height === 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightSpecific, height > 0), _defineProperty(_cx2, this.animationStateClasses.staticHeightAuto, height === 'auto'), _cx2));\n }\n }, {\n key: 'render',\n value: function render() {\n var _cx3,\n _this3 = this;\n\n var _props2 = this.props,\n animateOpacity = _props2.animateOpacity,\n applyInlineTransitions = _props2.applyInlineTransitions,\n children = _props2.children,\n className = _props2.className,\n contentClassName = _props2.contentClassName,\n delay = _props2.delay,\n duration = _props2.duration,\n easing = _props2.easing,\n id = _props2.id,\n style = _props2.style;\n var _state = this.state,\n height = _state.height,\n overflow = _state.overflow,\n animationStateClasses = _state.animationStateClasses,\n shouldUseTransitions = _state.shouldUseTransitions;\n\n\n var componentStyle = _extends({}, style, {\n height: height,\n overflow: overflow || style.overflow\n });\n\n if (shouldUseTransitions && applyInlineTransitions) {\n componentStyle.transition = 'height ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n\n // Include transition passed through styles\n if (style.transition) {\n componentStyle.transition = style.transition + ', ' + componentStyle.transition;\n }\n\n // Add webkit vendor prefix still used by opera, blackberry...\n componentStyle.WebkitTransition = componentStyle.transition;\n }\n\n var contentStyle = {};\n\n if (animateOpacity) {\n contentStyle.transition = 'opacity ' + duration + 'ms ' + easing + ' ' + delay + 'ms';\n // Add webkit vendor prefix still used by opera, blackberry...\n contentStyle.WebkitTransition = contentStyle.transition;\n\n if (height === 0) {\n contentStyle.opacity = 0;\n }\n }\n\n var componentClasses = (0, _classnames2.default)((_cx3 = {}, _defineProperty(_cx3, animationStateClasses, true), _defineProperty(_cx3, className, className), _cx3));\n\n // Check if user passed aria-hidden prop\n var hasAriaHiddenProp = typeof this.props['aria-hidden'] !== 'undefined';\n var ariaHidden = hasAriaHiddenProp ? this.props['aria-hidden'] : height === 0;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, omit.apply(undefined, [this.props].concat(PROPS_TO_OMIT)), {\n 'aria-hidden': ariaHidden,\n className: componentClasses,\n id: id,\n style: componentStyle\n }),\n _react2.default.createElement(\n 'div',\n {\n className: contentClassName,\n style: contentStyle,\n ref: function ref(el) {\n return _this3.contentElement = el;\n }\n },\n children\n )\n );\n }\n }]);\n\n return AnimateHeight;\n}(_react2.default.Component);\n\nvar heightPropType = function heightPropType(props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value === 'number' && value >= 0 || isPercentage(value) || value === 'auto') {\n return null;\n }\n\n return new TypeError('value \"' + value + '\" of type \"' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)) + '\" is invalid type for ' + propName + ' in ' + componentName + '. ' + 'It needs to be a positive number, string \"auto\" or percentage string (e.g. \"15%\").');\n};\n\nAnimateHeight.propTypes = {\n 'aria-hidden': _propTypes2.default.bool,\n animateOpacity: _propTypes2.default.bool,\n animationStateClasses: _propTypes2.default.object,\n applyInlineTransitions: _propTypes2.default.bool,\n children: _propTypes2.default.any.isRequired,\n className: _propTypes2.default.string,\n contentClassName: _propTypes2.default.string,\n delay: _propTypes2.default.number,\n duration: _propTypes2.default.number,\n easing: _propTypes2.default.string,\n height: heightPropType,\n id: _propTypes2.default.string,\n onAnimationEnd: _propTypes2.default.func,\n onAnimationStart: _propTypes2.default.func,\n style: _propTypes2.default.object\n};\n\nAnimateHeight.defaultProps = {\n animateOpacity: false,\n animationStateClasses: ANIMATION_STATE_CLASSES,\n applyInlineTransitions: true,\n duration: 250,\n delay: 0,\n easing: 'ease',\n style: {}\n};\n\nexports.default = AnimateHeight;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MediaQuery\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"MediaQuery\"] = factory(root[\"React\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE_react__) => {\nreturn ","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n'use strict';\n\nexports.match = matchQuery;\nexports.parse = parseQuery;\n\n// -----------------------------------------------------------------------------\n\nvar RE_MEDIA_QUERY = /(?:(only|not)?\\s*([^\\s\\(\\)]+)(?:\\s*and)?\\s*)?(.+)?/i,\n RE_MQ_EXPRESSION = /\\(\\s*([^\\s\\:\\)]+)\\s*(?:\\:\\s*([^\\s\\)]+))?\\s*\\)/,\n RE_MQ_FEATURE = /^(?:(min|max)-)?(.+)/,\n RE_LENGTH_UNIT = /(em|rem|px|cm|mm|in|pt|pc)?$/,\n RE_RESOLUTION_UNIT = /(dpi|dpcm|dppx)?$/;\n\nfunction matchQuery(mediaQuery, values) {\n return parseQuery(mediaQuery).some(function (query) {\n var inverse = query.inverse;\n\n // Either the parsed or specified `type` is \"all\", or the types must be\n // equal for a match.\n var typeMatch = query.type === 'all' || values.type === query.type;\n\n // Quit early when `type` doesn't match, but take \"not\" into account.\n if ((typeMatch && inverse) || !(typeMatch || inverse)) {\n return false;\n }\n\n var expressionsMatch = query.expressions.every(function (expression) {\n var feature = expression.feature,\n modifier = expression.modifier,\n expValue = expression.value,\n value = values[feature];\n\n // Missing or falsy values don't match.\n if (!value) { return false; }\n\n switch (feature) {\n case 'orientation':\n case 'scan':\n return value.toLowerCase() === expValue.toLowerCase();\n\n case 'width':\n case 'height':\n case 'device-width':\n case 'device-height':\n expValue = toPx(expValue);\n value = toPx(value);\n break;\n\n case 'resolution':\n expValue = toDpi(expValue);\n value = toDpi(value);\n break;\n\n case 'aspect-ratio':\n case 'device-aspect-ratio':\n case /* Deprecated */ 'device-pixel-ratio':\n expValue = toDecimal(expValue);\n value = toDecimal(value);\n break;\n\n case 'grid':\n case 'color':\n case 'color-index':\n case 'monochrome':\n expValue = parseInt(expValue, 10) || 1;\n value = parseInt(value, 10) || 0;\n break;\n }\n\n switch (modifier) {\n case 'min': return value >= expValue;\n case 'max': return value <= expValue;\n default : return value === expValue;\n }\n });\n\n return (expressionsMatch && !inverse) || (!expressionsMatch && inverse);\n });\n}\n\nfunction parseQuery(mediaQuery) {\n return mediaQuery.split(',').map(function (query) {\n query = query.trim();\n\n var captures = query.match(RE_MEDIA_QUERY),\n modifier = captures[1],\n type = captures[2],\n expressions = captures[3] || '',\n parsed = {};\n\n parsed.inverse = !!modifier && modifier.toLowerCase() === 'not';\n parsed.type = type ? type.toLowerCase() : 'all';\n\n // Split expressions into a list.\n expressions = expressions.match(/\\([^\\)]+\\)/g) || [];\n\n parsed.expressions = expressions.map(function (expression) {\n var captures = expression.match(RE_MQ_EXPRESSION),\n feature = captures[1].toLowerCase().match(RE_MQ_FEATURE);\n\n return {\n modifier: feature[1],\n feature : feature[2],\n value : captures[2]\n };\n });\n\n return parsed;\n });\n}\n\n// -- Utilities ----------------------------------------------------------------\n\nfunction toDecimal(ratio) {\n var decimal = Number(ratio),\n numbers;\n\n if (!decimal) {\n numbers = ratio.match(/^(\\d+)\\s*\\/\\s*(\\d+)$/);\n decimal = numbers[1] / numbers[2];\n }\n\n return decimal;\n}\n\nfunction toDpi(resolution) {\n var value = parseFloat(resolution),\n units = String(resolution).match(RE_RESOLUTION_UNIT)[1];\n\n switch (units) {\n case 'dpcm': return value / 2.54;\n case 'dppx': return value * 96;\n default : return value;\n }\n}\n\nfunction toPx(length) {\n var value = parseFloat(length),\n units = String(length).match(RE_LENGTH_UNIT)[1];\n\n switch (units) {\n case 'em' : return value * 16;\n case 'rem': return value * 16;\n case 'cm' : return value * 96 / 2.54;\n case 'mm' : return value * 96 / 2.54 / 10;\n case 'in' : return value * 96;\n case 'pt' : return value * 72;\n case 'pc' : return value * 72 / 12;\n default : return value;\n }\n}\n","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g\nvar msPattern = /^ms-/\nvar cache = {}\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower)\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nexport default hyphenateStyleName\n","'use strict';\n\nvar staticMatch = require('css-mediaquery').match;\nvar dynamicMatch = typeof window !== 'undefined' ? window.matchMedia : null;\n\n// our fake MediaQueryList\nfunction Mql(query, values, forceStatic){\n var self = this;\n if(dynamicMatch && !forceStatic){\n var mql = dynamicMatch.call(window, query);\n this.matches = mql.matches;\n this.media = mql.media;\n // TODO: is there a time it makes sense to remove this listener?\n mql.addListener(update);\n } else {\n this.matches = staticMatch(query, values);\n this.media = query;\n }\n\n this.addListener = addListener;\n this.removeListener = removeListener;\n this.dispose = dispose;\n\n function addListener(listener){\n if(mql){\n mql.addListener(listener);\n }\n }\n\n function removeListener(listener){\n if(mql){\n mql.removeListener(listener);\n }\n }\n\n // update ourselves!\n function update(evt){\n self.matches = evt.matches;\n self.media = evt.media;\n }\n\n function dispose(){\n if(mql){\n mql.removeListener(update);\n }\n }\n}\n\nfunction matchMedia(query, values, forceStatic){\n return new Mql(query, values, forceStatic);\n}\n\nmodule.exports = matchMedia;\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","function shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowEqualArrays(arrA, arrB) {\n if (arrA === arrB) {\n return true;\n }\n\n if (!arrA || !arrB) {\n return false;\n }\n\n var len = arrA.length;\n\n if (arrB.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqualArrays, shallowEqualObjects };\n","import useMediaQuery from './useMediaQuery';\nimport { ReactNode, ReactElement, FC, CSSProperties } from 'react';\nimport { MediaQueryAllQueryable, MediaQueryMatchers } from './types';\n\ninterface MediaQueryProps extends MediaQueryAllQueryable {\n component?: ReactNode\n // eslint-disable-next-line @typescript-eslint/ban-types\n children?: ReactNode | ((matches: boolean) => ReactNode);\n query?: string;\n style?: CSSProperties;\n className?: string;\n device?: MediaQueryMatchers;\n values?: Partial<MediaQueryMatchers>;\n onBeforeChange?: (_matches: boolean) => void;\n onChange?: (_matches: boolean) => void;\n}\n\n// ReactNode and ReactElement typings are a little funky for functional components, so the ReactElement cast is needed on the return\nconst MediaQuery: FC<MediaQueryProps> = ({\n children,\n device,\n onChange,\n ...settings\n}) => {\n const matches = useMediaQuery(settings, device, onChange);\n\n if (typeof children === 'function') {\n return children(matches) as ReactElement;\n }\n return matches ? children as ReactElement : null;\n};\n\nexport default MediaQuery;\n","import { createContext } from 'react'\nimport { MediaQueryAllQueryable } from './types'\n\nconst Context = createContext<Partial<MediaQueryAllQueryable> | undefined>(undefined)\n\nexport default Context\n","import useMediaQuery from './useMediaQuery'\nimport MediaQuery from './Component'\nimport toQuery from './toQuery'\nimport Context from './Context'\n\nexport {\n MediaQuery as default,\n useMediaQuery,\n toQuery,\n Context\n}\n\nexport type {\n MediaQueryTypes,\n MediaQueryType,\n MediaQueryFeatures,\n MediaQueryMatchers,\n MediaQueryAllQueryable\n} from './types'\n","import PropTypes from 'prop-types'\n\nconst stringOrNumber = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number\n])\n\n// media types\nconst types = {\n all: PropTypes.bool,\n grid: PropTypes.bool,\n aural: PropTypes.bool,\n braille: PropTypes.bool,\n handheld: PropTypes.bool,\n print: PropTypes.bool,\n projection: PropTypes.bool,\n screen: PropTypes.bool,\n tty: PropTypes.bool,\n tv: PropTypes.bool,\n embossed: PropTypes.bool\n}\n\n// properties that match media queries\nconst matchers = {\n orientation: PropTypes.oneOf([\n 'portrait',\n 'landscape'\n ]),\n\n scan: PropTypes.oneOf([\n 'progressive',\n 'interlace'\n ]),\n\n aspectRatio: PropTypes.string,\n deviceAspectRatio: PropTypes.string,\n\n height: stringOrNumber,\n deviceHeight: stringOrNumber,\n\n width: stringOrNumber,\n deviceWidth: stringOrNumber,\n\n color: PropTypes.bool,\n\n colorIndex: PropTypes.bool,\n\n monochrome: PropTypes.bool,\n resolution: stringOrNumber,\n type: Object.keys(types)\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst { type, ...featureMatchers } = matchers\n\n// media features\nconst features = {\n minAspectRatio: PropTypes.string,\n maxAspectRatio: PropTypes.string,\n minDeviceAspectRatio: PropTypes.string,\n maxDeviceAspectRatio: PropTypes.string,\n\n minHeight: stringOrNumber,\n maxHeight: stringOrNumber,\n minDeviceHeight: stringOrNumber,\n maxDeviceHeight: stringOrNumber,\n\n minWidth: stringOrNumber,\n maxWidth: stringOrNumber,\n minDeviceWidth: stringOrNumber,\n maxDeviceWidth: stringOrNumber,\n\n minColor: PropTypes.number,\n maxColor: PropTypes.number,\n\n minColorIndex: PropTypes.number,\n maxColorIndex: PropTypes.number,\n\n minMonochrome: PropTypes.number,\n maxMonochrome: PropTypes.number,\n\n minResolution: stringOrNumber,\n maxResolution: stringOrNumber,\n\n ...featureMatchers\n}\n\nconst all = { ...types, ...features }\n\nexport default {\n all: all,\n types: types,\n matchers: matchers,\n features: features\n}\n","import hyphenate from 'hyphenate-style-name'\nimport mq from './mediaQuery'\nimport { MediaQueryAllQueryable } from './types'\n\nconst negate = (cond: string) => `not ${cond}`\n\nconst keyVal = (k: string, v: unknown): string => {\n const realKey = hyphenate(k)\n\n // px shorthand\n if (typeof v === 'number') {\n v = `${v}px`\n }\n if (v === true) {\n return realKey\n }\n if (v === false) {\n return negate(realKey)\n }\n return `(${realKey}: ${v})`\n}\n\nconst join = (conds: string[]): string => conds.join(' and ')\n\nconst toQuery = (obj: Partial<MediaQueryAllQueryable>): string => {\n const rules: string[] = []\n Object.keys(mq.all).forEach((k) => {\n const v = obj[k as keyof MediaQueryAllQueryable]\n if (v != null) {\n rules.push(keyVal(k, v))\n }\n })\n return join(rules)\n}\n\nexport default toQuery\n","import { useRef, useEffect, useContext, useState } from 'react'\nimport matchMedia from 'matchmediaquery'\nimport hyphenate from 'hyphenate-style-name'\nimport { shallowEqualObjects } from 'shallow-equal'\nimport toQuery from './toQuery'\nimport Context from './Context'\nimport { MediaQueryAllQueryable, MediaQueryMatchers } from './types'\n\ntype MediaQuerySettings = Partial<MediaQueryAllQueryable & { query?: string }>\ntype HyphenateKeyTypes = MediaQueryMatchers | MediaQueryAllQueryable;\n\nconst makeQuery = (settings: MediaQuerySettings) => settings.query || toQuery(settings)\n\nconst hyphenateKeys = (obj?: HyphenateKeyTypes) => {\n type K = keyof HyphenateKeyTypes;\n\n if (!obj) return undefined\n const keys = Object.keys(obj) as K[]\n\n return keys.reduce((result, key) => {\n result[hyphenate(key)] = obj[key]\n return result\n }, {} as Record<string, typeof obj[K]>)\n}\n\nconst useIsUpdate = () => {\n const ref = useRef(false)\n\n useEffect(() => {\n ref.current = true\n }, [])\n\n return ref.current\n}\n\nconst useDevice = (deviceFromProps?: MediaQueryMatchers): Partial<MediaQueryAllQueryable> | undefined => {\n const deviceFromContext = useContext(Context)\n const getDevice = () =>\n hyphenateKeys(deviceFromProps) || hyphenateKeys(deviceFromContext)\n const [ device, setDevice ] = useState(getDevice)\n\n useEffect(() => {\n const newDevice = getDevice()\n if (!shallowEqualObjects(device, newDevice)) {\n setDevice(newDevice)\n }\n }, [ deviceFromProps, deviceFromContext ])\n\n return device\n}\n\nconst useQuery = (settings: MediaQuerySettings) => {\n const getQuery = () => makeQuery(settings)\n const [ query, setQuery ] = useState(getQuery)\n\n useEffect(() => {\n const newQuery = getQuery()\n if (query !== newQuery) {\n setQuery(newQuery)\n }\n }, [ settings ])\n\n return query\n}\n\nconst useMatchMedia = (query: string, device?: MediaQueryMatchers) => {\n const getMatchMedia = () => matchMedia(query, device || {}, !!device)\n const [ mq, setMq ] = useState(getMatchMedia)\n const isUpdate = useIsUpdate()\n\n useEffect(() => {\n if (isUpdate) {\n // skip on mounting, it has already been set\n const newMq = getMatchMedia()\n setMq(newMq)\n\n return () => {\n if (newMq) {\n newMq.dispose()\n }\n }\n }\n }, [ query, device ])\n\n return mq\n}\n\nconst useMatches = (mediaQuery: MediaQueryList): boolean => {\n const [ matches, setMatches ] = useState<boolean>(mediaQuery.matches)\n\n useEffect(() => {\n const updateMatches = (ev: MediaQueryListEvent) => {\n setMatches(ev.matches)\n }\n mediaQuery.addListener(updateMatches)\n setMatches(mediaQuery.matches)\n\n return () => {\n mediaQuery.removeListener(updateMatches)\n }\n }, [ mediaQuery ])\n\n return matches\n}\n\nconst useMediaQuery = (settings: MediaQuerySettings, device?: MediaQueryMatchers, onChange?: (_: boolean) => void) => {\n const deviceSettings = useDevice(device)\n const query = useQuery(settings)\n if (!query) throw new Error('Invalid or missing MediaQuery!')\n const mq = useMatchMedia(query, deviceSettings)\n const matches = useMatches(mq as unknown as MediaQueryList)\n const isUpdate = useIsUpdate()\n\n useEffect(() => {\n if (isUpdate && onChange) {\n onChange(matches)\n }\n }, [ matches ])\n\n useEffect(() => () => {\n if (mq) {\n mq.dispose()\n }\n }, [])\n\n return matches\n}\n\nexport default useMediaQuery\n","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.ts\");\n","'use strict';\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./react-select.cjs.prod.js\");\n} else {\n module.exports = require(\"./react-select.cjs.dev.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar $$observable = _interopDefault(require('symbol-observable'));\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error('It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error('You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected the listener to be a function.');\n }\n\n if (isDispatching) {\n throw new Error('You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error('You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api-reference/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changedâ€. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionDescription = actionType && \"action \\\"\" + String(actionType) + \"\\\"\" || 'an action';\n return \"Given \" + actionDescription + \", reducer \\\"\" + key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\";\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(\"Reducer \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle \" + ActionTypes.INIT + \" or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (\"production\" !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (\"production\" !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (\"production\" !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(\"bindActionCreators expected an object or a function, instead received \" + (actionCreators === null ? 'null' : typeof actionCreators) + \". \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n keys.push.apply(keys, Object.getOwnPropertySymbols(object));\n }\n\n if (enumerableOnly) keys = keys.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error('Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread2({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (\"production\" !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexports.__DO_NOT_USE__ActionTypes = ActionTypes;\nexports.applyMiddleware = applyMiddleware;\nexports.bindActionCreators = bindActionCreators;\nexports.combineReducers = combineReducers;\nexports.compose = compose;\nexports.createStore = createStore;\n","/*! smooth-scroll v16.1.2 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+\"RequestAnimationFrame\"],window.cancelAnimationFrame=window[e[t]+\"CancelAnimationFrame\"]||window[e[t]+\"CancelRequestAnimationFrame\"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),o=Math.max(0,16-(n-r)),a=window.setTimeout((function(){e(n+o)}),o);return r=n+o,a}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){\"function\"==typeof define&&define.amd?define([],(function(){return t(e)})):\"object\"==typeof exports?module.exports=t(e):e.SmoothScroll=t(e)})(\"undefined\"!=typeof global?global:\"undefined\"!=typeof window?window:this,(function(q){\"use strict\";var I={ignore:\"[data-scroll-ignore]\",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:\"easeInOutCubic\",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},F=function(){var n={};return Array.prototype.forEach.call(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}})),n},r=function(e){\"#\"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r=\"\",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError(\"Invalid character: the input contains U+0000.\");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?r+=\"\\\\\"+t.toString(16)+\" \":r+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?n.charAt(a):\"\\\\\"+n.charAt(a)}return\"#\"+r},L=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},x=function(e){return e?(t=e,parseInt(q.getComputedStyle(t).height,10)+e.offsetTop):0;var t},H=function(e,t,n,o){if(t.emitEvents&&\"function\"==typeof q.CustomEvent){var a=new CustomEvent(e,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(a)}};return function(o,e){var A,a,O,C,M={};M.cancelScroll=function(e){cancelAnimationFrame(C),C=null,e||H(\"scrollCancel\",A)},M.animateScroll=function(i,c,e){M.cancelScroll();var s=F(A||I,e||{}),u=\"[object Number]\"===Object.prototype.toString.call(i),t=u||!i.tagName?null:i;if(u||t){var l=q.pageYOffset;s.header&&!O&&(O=document.querySelector(s.header));var n,o,a,m,r,d,f,h,p=x(O),g=u?i:(function(e,t,n,o){var a=0;if(e.offsetParent)for(;a+=e.offsetTop,e=e.offsetParent;);return a=Math.max(a-t-n,0),o&&(a=Math.min(a,L()-q.innerHeight)),a})(t,p,parseInt(\"function\"==typeof s.offset?s.offset(i,c):s.offset,10),s.clip),y=g-l,v=L(),w=0,S=(n=y,a=(o=s).speedAsDuration?o.speed:Math.abs(n/1e3*o.speed),o.durationMax&&a>o.durationMax?o.durationMax:o.durationMin&&a<o.durationMin?o.durationMin:parseInt(a,10)),E=function(e,t){var n,o,a,r=q.pageYOffset;if(e==t||r==t||(l<t&&q.innerHeight+r)>=v)return M.cancelScroll(!0),o=t,a=u,0===(n=i)&&document.body.focus(),a||(n.focus(),document.activeElement!==n&&(n.setAttribute(\"tabindex\",\"-1\"),n.focus(),n.style.outline=\"none\"),q.scrollTo(0,o)),H(\"scrollStop\",s,i,c),!(C=m=null)},b=function(e){var t,n,o;m||(m=e),w+=e-m,d=l+y*(n=r=1<(r=0===S?0:w/S)?1:r,\"easeInQuad\"===(t=s).easing&&(o=n*n),\"easeOutQuad\"===t.easing&&(o=n*(2-n)),\"easeInOutQuad\"===t.easing&&(o=n<.5?2*n*n:(4-2*n)*n-1),\"easeInCubic\"===t.easing&&(o=n*n*n),\"easeOutCubic\"===t.easing&&(o=--n*n*n+1),\"easeInOutCubic\"===t.easing&&(o=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),\"easeInQuart\"===t.easing&&(o=n*n*n*n),\"easeOutQuart\"===t.easing&&(o=1- --n*n*n*n),\"easeInOutQuart\"===t.easing&&(o=n<.5?8*n*n*n*n:1-8*--n*n*n*n),\"easeInQuint\"===t.easing&&(o=n*n*n*n*n),\"easeOutQuint\"===t.easing&&(o=1+--n*n*n*n*n),\"easeInOutQuint\"===t.easing&&(o=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(o=t.customEasing(n)),o||n),q.scrollTo(0,Math.floor(d)),E(d,g)||(C=q.requestAnimationFrame(b),m=e)};0===q.pageYOffset&&q.scrollTo(0,0),f=i,h=s,u||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in q&&q.matchMedia(\"(prefers-reduced-motion)\").matches?q.scrollTo(0,Math.floor(g)):(H(\"scrollStart\",s,i,c),M.cancelScroll(!0),q.requestAnimationFrame(b))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(A.ignore)&&a.hostname===q.location.hostname&&a.pathname===q.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if(\"#\"===t){if(!A.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||\"#top\"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=q.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||q.pageYOffset},document.title,t||q.location.href)}})(A),M.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(A)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||M.animateScroll(t,null,{updateURL:!1})}};M.destroy=function(){A&&(document.removeEventListener(\"click\",t,!1),q.removeEventListener(\"popstate\",n,!1),M.cancelScroll(),C=O=a=A=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in q&&\"requestAnimationFrame\"in q&&\"closest\"in q.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";M.destroy(),A=F(I,e||{}),O=A.header?document.querySelector(A.header):null,document.addEventListener(\"click\",t,!1),A.updateURL&&A.popstate&&q.addEventListener(\"popstate\",n,!1)})(),M}}));","!function(root, factory) {\n \"function\" == typeof define && define.amd ? // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function() {\n return root.svg4everybody = factory();\n }) : \"object\" == typeof module && module.exports ? // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory() : root.svg4everybody = factory();\n}(this, function() {\n /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */\n function embed(parent, svg, target) {\n // if the target exists\n if (target) {\n // create a document fragment to hold the contents of the target\n var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute(\"viewBox\") && target.getAttribute(\"viewBox\");\n // conditionally set the viewBox on the svg\n viewBox && svg.setAttribute(\"viewBox\", viewBox);\n // copy the contents of the clone into the fragment\n for (// clone the target\n var clone = target.cloneNode(!0); clone.childNodes.length; ) {\n fragment.appendChild(clone.firstChild);\n }\n // append the fragment into the svg\n parent.appendChild(fragment);\n }\n }\n function loadreadystatechange(xhr) {\n // listen to changes in the request\n xhr.onreadystatechange = function() {\n // if the request is ready\n if (4 === xhr.readyState) {\n // get the cached html document\n var cachedDocument = xhr._cachedDocument;\n // ensure the cached html document based on the xhr response\n cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(\"\"), \n cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item\n xhr._embeds.splice(0).map(function(item) {\n // get the cached target\n var target = xhr._cachedTarget[item.id];\n // ensure the cached target\n target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), \n // embed the target into the svg\n embed(item.parent, item.svg, target);\n });\n }\n }, // test the ready state change immediately\n xhr.onreadystatechange();\n }\n function svg4everybody(rawopts) {\n function oninterval() {\n // while the index exists in the live <use> collection\n for (// get the cached <use> index\n var index = 0; index < uses.length; ) {\n // get the current <use>\n var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute(\"xlink:href\") || use.getAttribute(\"href\");\n if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), \n svg && src) {\n if (polyfill) {\n if (!opts.validate || opts.validate(src, svg, use)) {\n // remove the <use> element\n parent.removeChild(use);\n // parse the src and get the url and id\n var srcSplit = src.split(\"#\"), url = srcSplit.shift(), id = srcSplit.join(\"#\");\n // if the link is external\n if (url.length) {\n // get the cached xhr request\n var xhr = requests[url];\n // ensure the xhr request exists\n xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open(\"GET\", url), xhr.send(), \n xhr._embeds = []), // add the svg and id as an item to the xhr embeds list\n xhr._embeds.push({\n parent: parent,\n svg: svg,\n id: id\n }), // prepare the xhr ready state change event\n loadreadystatechange(xhr);\n } else {\n // embed the local id into the svg\n embed(parent, svg, document.getElementById(id));\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index, ++numberOfSvgUseElementsToBypass;\n }\n }\n } else {\n // increase the index when the previous value was not \"valid\"\n ++index;\n }\n }\n // continue the interval\n (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67);\n }\n var polyfill, opts = Object(rawopts), newerIEUA = /\\bTrident\\/[567]\\b|\\bMSIE (?:9|10)\\.0\\b/, webkitUA = /\\bAppleWebKit\\/(\\d+)\\b/, olderEdgeUA = /\\bEdge\\/12\\.(\\d+)\\b/, edgeUA = /\\bEdge\\/.(\\d+)\\b/, inIframe = window.top !== window.self;\n polyfill = \"polyfill\" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe;\n // create xhr requests object\n var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName(\"use\"), numberOfSvgUseElementsToBypass = 0;\n // conditionally start the interval if the polyfill is active\n polyfill && oninterval();\n }\n function getSVGAncestor(node) {\n for (var svg = node; \"svg\" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {}\n return svg;\n }\n return svg4everybody;\n});","/*!\n * URI.js - Mutating URLs\n *\n * Version: 1.19.2\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains'));\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['./punycode', './IPv6', './SecondLevelDomains'], factory);\n } else {\n // Browser globals (root is window)\n root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root);\n }\n}(this, function (punycode, IPv6, SLD, root) {\n 'use strict';\n /*global location, escape, unescape */\n // FIXME: v2.0.0 renamce non-camelCase properties to uppercase\n /*jshint camelcase: false */\n\n // save current URI variable, if any\n var _URI = root && root.URI;\n\n function URI(url, base) {\n var _urlSupplied = arguments.length >= 1;\n var _baseSupplied = arguments.length >= 2;\n\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof URI)) {\n if (_urlSupplied) {\n if (_baseSupplied) {\n return new URI(url, base);\n }\n\n return new URI(url);\n }\n\n return new URI();\n }\n\n if (url === undefined) {\n if (_urlSupplied) {\n throw new TypeError('undefined is not a valid argument for URI');\n }\n\n if (typeof location !== 'undefined') {\n url = location.href + '';\n } else {\n url = '';\n }\n }\n\n if (url === null) {\n if (_urlSupplied) {\n throw new TypeError('null is not a valid argument for URI');\n }\n }\n\n this.href(url);\n\n // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor\n if (base !== undefined) {\n return this.absoluteTo(base);\n }\n\n return this;\n }\n\n function isInteger(value) {\n return /^[0-9]+$/.test(value);\n }\n\n URI.version = '1.19.2';\n\n var p = URI.prototype;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n function escapeRegEx(string) {\n // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963\n return string.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function getType(value) {\n // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value\n if (value === undefined) {\n return 'Undefined';\n }\n\n return String(Object.prototype.toString.call(value)).slice(8, -1);\n }\n\n function isArray(obj) {\n return getType(obj) === 'Array';\n }\n\n function filterArrayValues(data, value) {\n var lookup = {};\n var i, length;\n\n if (getType(value) === 'RegExp') {\n lookup = null;\n } else if (isArray(value)) {\n for (i = 0, length = value.length; i < length; i++) {\n lookup[value[i]] = true;\n }\n } else {\n lookup[value] = true;\n }\n\n for (i = 0, length = data.length; i < length; i++) {\n /*jshint laxbreak: true */\n var _match = lookup && lookup[data[i]] !== undefined\n || !lookup && value.test(data[i]);\n /*jshint laxbreak: false */\n if (_match) {\n data.splice(i, 1);\n length--;\n i--;\n }\n }\n\n return data;\n }\n\n function arrayContains(list, value) {\n var i, length;\n\n // value may be string, number, array, regexp\n if (isArray(value)) {\n // Note: this can be optimized to O(n) (instead of current O(m * n))\n for (i = 0, length = value.length; i < length; i++) {\n if (!arrayContains(list, value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n var _type = getType(value);\n for (i = 0, length = list.length; i < length; i++) {\n if (_type === 'RegExp') {\n if (typeof list[i] === 'string' && list[i].match(value)) {\n return true;\n }\n } else if (list[i] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n function arraysEqual(one, two) {\n if (!isArray(one) || !isArray(two)) {\n return false;\n }\n\n // arrays can't be equal if they have different amount of content\n if (one.length !== two.length) {\n return false;\n }\n\n one.sort();\n two.sort();\n\n for (var i = 0, l = one.length; i < l; i++) {\n if (one[i] !== two[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function trimSlashes(text) {\n var trim_expression = /^\\/+|\\/+$/g;\n return text.replace(trim_expression, '');\n }\n\n URI._parts = function() {\n return {\n protocol: null,\n username: null,\n password: null,\n hostname: null,\n urn: null,\n port: null,\n path: null,\n query: null,\n fragment: null,\n // state\n preventInvalidHostname: URI.preventInvalidHostname,\n duplicateQueryParameters: URI.duplicateQueryParameters,\n escapeQuerySpace: URI.escapeQuerySpace\n };\n };\n // state: throw on invalid hostname\n // see https://github.com/medialize/URI.js/pull/345\n // and https://github.com/medialize/URI.js/issues/354\n URI.preventInvalidHostname = false;\n // state: allow duplicate query parameters (a=1&a=1)\n URI.duplicateQueryParameters = false;\n // state: replaces + with %20 (space in query strings)\n URI.escapeQuerySpace = true;\n // static properties\n URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;\n URI.idn_expression = /[^a-z0-9\\._-]/i;\n URI.punycode_expression = /(xn--)/i;\n // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?\n URI.ip4_expression = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\n // credits to Rich Brown\n // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096\n // specification: http://www.ietf.org/rfc/rfc4291.txt\n URI.ip6_expression = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/;\n // expression used is \"gruber revised\" (@gruber v2) determined to be the\n // best solution in a regex-golf we did a couple of ages ago at\n // * http://mathiasbynens.be/demo/url-regex\n // * http://rodneyrehm.de/t/url-regex.html\n URI.find_uri_expression = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“â€â€˜â€™]))/ig;\n URI.findUri = {\n // valid \"scheme://\" or \"www.\"\n start: /\\b(?:([a-z][a-z0-9.+-]*:\\/\\/)|www\\.)/gi,\n // everything up to the next whitespace\n end: /[\\s\\r\\n]|$/,\n // trim trailing punctuation captured by end RegExp\n trim: /[`!()\\[\\]{};:'\".,<>?«»“â€â€žâ€˜â€™]+$/,\n // balanced parens inclusion (), [], {}, <>\n parens: /(\\([^\\)]*\\)|\\[[^\\]]*\\]|\\{[^}]*\\}|<[^>]*>)/g,\n };\n // http://www.iana.org/assignments/uri-schemes.html\n // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports\n URI.defaultPorts = {\n http: '80',\n https: '443',\n ftp: '21',\n gopher: '70',\n ws: '80',\n wss: '443'\n };\n // list of protocols which always require a hostname\n URI.hostProtocols = [\n 'http',\n 'https'\n ];\n\n // allowed hostname characters according to RFC 3986\n // ALPHA DIGIT \"-\" \".\" \"_\" \"~\" \"!\" \"$\" \"&\" \"'\" \"(\" \")\" \"*\" \"+\" \",\" \";\" \"=\" %encoded\n // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _\n URI.invalid_hostname_characters = /[^a-zA-Z0-9\\.\\-:_]/;\n // map DOM Elements to their URI attribute\n URI.domAttributes = {\n 'a': 'href',\n 'blockquote': 'cite',\n 'link': 'href',\n 'base': 'href',\n 'script': 'src',\n 'form': 'action',\n 'img': 'src',\n 'area': 'href',\n 'iframe': 'src',\n 'embed': 'src',\n 'source': 'src',\n 'track': 'src',\n 'input': 'src', // but only if type=\"image\"\n 'audio': 'src',\n 'video': 'src'\n };\n URI.getDomAttribute = function(node) {\n if (!node || !node.nodeName) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toLowerCase();\n // <input> should only expose src for type=\"image\"\n if (nodeName === 'input' && node.type !== 'image') {\n return undefined;\n }\n\n return URI.domAttributes[nodeName];\n };\n\n function escapeForDumbFirefox36(value) {\n // https://github.com/medialize/URI.js/issues/91\n return escape(value);\n }\n\n // encoding / decoding according to RFC3986\n function strictEncodeURIComponent(string) {\n // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent\n return encodeURIComponent(string)\n .replace(/[!'()*]/g, escapeForDumbFirefox36)\n .replace(/\\*/g, '%2A');\n }\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n URI.iso8859 = function() {\n URI.encode = escape;\n URI.decode = unescape;\n };\n URI.unicode = function() {\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n };\n URI.characters = {\n pathname: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,\n map: {\n // -._~!'()*\n '%24': '$',\n '%26': '&',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%3A': ':',\n '%40': '@'\n }\n },\n decode: {\n expression: /[\\/\\?#]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23'\n }\n }\n },\n reserved: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,\n map: {\n // gen-delims\n '%3A': ':',\n '%2F': '/',\n '%3F': '?',\n '%23': '#',\n '%5B': '[',\n '%5D': ']',\n '%40': '@',\n // sub-delims\n '%21': '!',\n '%24': '$',\n '%26': '&',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '='\n }\n }\n },\n urnpath: {\n // The characters under `encode` are the characters called out by RFC 2141 as being acceptable\n // for usage in a URN. RFC2141 also calls out \"-\", \".\", and \"_\" as acceptable characters, but\n // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also\n // note that the colon character is not featured in the encoding map; this is because URI.js\n // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it\n // should not appear unencoded in a segment itself.\n // See also the note above about RFC3986 and capitalalized hex digits.\n encode: {\n expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,\n map: {\n '%21': '!',\n '%24': '$',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%40': '@'\n }\n },\n // These characters are the characters called out by RFC2141 as \"reserved\" characters that\n // should never appear in a URN, plus the colon character (see note above).\n decode: {\n expression: /[\\/\\?#:]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23',\n ':': '%3A'\n }\n }\n }\n };\n URI.encodeQuery = function(string, escapeQuerySpace) {\n var escaped = URI.encode(string + '');\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;\n };\n URI.decodeQuery = function(string, escapeQuerySpace) {\n string += '';\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n try {\n return URI.decode(escapeQuerySpace ? string.replace(/\\+/g, '%20') : string);\n } catch(e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n // generate encode/decode path functions\n var _parts = {'encode':'encode', 'decode':'decode'};\n var _part;\n var generateAccessor = function(_group, _part) {\n return function(string) {\n try {\n return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {\n return URI.characters[_group][_part].map[c];\n });\n } catch (e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n };\n\n for (_part in _parts) {\n URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);\n URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);\n }\n\n var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {\n return function(string) {\n // Why pass in names of functions, rather than the function objects themselves? The\n // definitions of some functions (but in particular, URI.decode) will occasionally change due\n // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure\n // that the functions we use here are \"fresh\".\n var actualCodingFunc;\n if (!_innerCodingFuncName) {\n actualCodingFunc = URI[_codingFuncName];\n } else {\n actualCodingFunc = function(string) {\n return URI[_codingFuncName](URI[_innerCodingFuncName](string));\n };\n }\n\n var segments = (string + '').split(_sep);\n\n for (var i = 0, length = segments.length; i < length; i++) {\n segments[i] = actualCodingFunc(segments[i]);\n }\n\n return segments.join(_sep);\n };\n };\n\n // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.\n URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');\n URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');\n URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');\n URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');\n\n URI.encodeReserved = generateAccessor('reserved', 'encode');\n\n URI.parse = function(string, parts) {\n var pos;\n if (!parts) {\n parts = {\n preventInvalidHostname: URI.preventInvalidHostname\n };\n }\n // [protocol\"://\"[username[\":\"password]\"@\"]hostname[\":\"port]\"/\"?][path][\"?\"querystring][\"#\"fragment]\n\n // extract fragment\n pos = string.indexOf('#');\n if (pos > -1) {\n // escaping?\n parts.fragment = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract query\n pos = string.indexOf('?');\n if (pos > -1) {\n // escaping?\n parts.query = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract protocol\n if (string.substring(0, 2) === '//') {\n // relative-scheme\n parts.protocol = null;\n string = string.substring(2);\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n pos = string.indexOf(':');\n if (pos > -1) {\n parts.protocol = string.substring(0, pos) || null;\n if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {\n // : may be within the path\n parts.protocol = undefined;\n } else if (string.substring(pos + 1, pos + 3) === '//') {\n string = string.substring(pos + 3);\n\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n string = string.substring(pos + 1);\n parts.urn = true;\n }\n }\n }\n\n // what's left must be the path\n parts.path = string;\n\n // and we're done\n return parts;\n };\n URI.parseHost = function(string, parts) {\n if (!string) {\n string = '';\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n // https://github.com/medialize/URI.js/pull/233\n string = string.replace(/\\\\/g, '/');\n\n // extract host:port\n var pos = string.indexOf('/');\n var bracketPos;\n var t;\n\n if (pos === -1) {\n pos = string.length;\n }\n\n if (string.charAt(0) === '[') {\n // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6\n // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts\n // IPv6+port in the format [2001:db8::1]:80 (for the time being)\n bracketPos = string.indexOf(']');\n parts.hostname = string.substring(1, bracketPos) || null;\n parts.port = string.substring(bracketPos + 2, pos) || null;\n if (parts.port === '/') {\n parts.port = null;\n }\n } else {\n var firstColon = string.indexOf(':');\n var firstSlash = string.indexOf('/');\n var nextColon = string.indexOf(':', firstColon + 1);\n if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {\n // IPv6 host contains multiple colons - but no port\n // this notation is actually not allowed by RFC 3986, but we're a liberal parser\n parts.hostname = string.substring(0, pos) || null;\n parts.port = null;\n } else {\n t = string.substring(0, pos).split(':');\n parts.hostname = t[0] || null;\n parts.port = t[1] || null;\n }\n }\n\n if (parts.hostname && string.substring(pos).charAt(0) !== '/') {\n pos++;\n string = '/' + string;\n }\n\n if (parts.preventInvalidHostname) {\n URI.ensureValidHostname(parts.hostname, parts.protocol);\n }\n\n if (parts.port) {\n URI.ensureValidPort(parts.port);\n }\n\n return string.substring(pos) || '/';\n };\n URI.parseAuthority = function(string, parts) {\n string = URI.parseUserinfo(string, parts);\n return URI.parseHost(string, parts);\n };\n URI.parseUserinfo = function(string, parts) {\n // extract username:password\n var firstSlash = string.indexOf('/');\n var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);\n var t;\n\n // authority@ must come before /path\n if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {\n t = string.substring(0, pos).split(':');\n parts.username = t[0] ? URI.decode(t[0]) : null;\n t.shift();\n parts.password = t[0] ? URI.decode(t.join(':')) : null;\n string = string.substring(pos + 1);\n } else {\n parts.username = null;\n parts.password = null;\n }\n\n return string;\n };\n URI.parseQuery = function(string, escapeQuerySpace) {\n if (!string) {\n return {};\n }\n\n // throw out the funky business - \"?\"[name\"=\"value\"&\"]+\n string = string.replace(/&+/g, '&').replace(/^\\?*&*|&+$/g, '');\n\n if (!string) {\n return {};\n }\n\n var items = {};\n var splits = string.split('&');\n var length = splits.length;\n var v, name, value;\n\n for (var i = 0; i < length; i++) {\n v = splits[i].split('=');\n name = URI.decodeQuery(v.shift(), escapeQuerySpace);\n // no \"=\" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters\n value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;\n\n if (hasOwn.call(items, name)) {\n if (typeof items[name] === 'string' || items[name] === null) {\n items[name] = [items[name]];\n }\n\n items[name].push(value);\n } else {\n items[name] = value;\n }\n }\n\n return items;\n };\n\n URI.build = function(parts) {\n var t = '';\n var requireAbsolutePath = false\n\n if (parts.protocol) {\n t += parts.protocol + ':';\n }\n\n if (!parts.urn && (t || parts.hostname)) {\n t += '//';\n requireAbsolutePath = true\n }\n\n t += (URI.buildAuthority(parts) || '');\n\n if (typeof parts.path === 'string') {\n if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {\n t += '/';\n }\n\n t += parts.path;\n }\n\n if (typeof parts.query === 'string' && parts.query) {\n t += '?' + parts.query;\n }\n\n if (typeof parts.fragment === 'string' && parts.fragment) {\n t += '#' + parts.fragment;\n }\n return t;\n };\n URI.buildHost = function(parts) {\n var t = '';\n\n if (!parts.hostname) {\n return '';\n } else if (URI.ip6_expression.test(parts.hostname)) {\n t += '[' + parts.hostname + ']';\n } else {\n t += parts.hostname;\n }\n\n if (parts.port) {\n t += ':' + parts.port;\n }\n\n return t;\n };\n URI.buildAuthority = function(parts) {\n return URI.buildUserinfo(parts) + URI.buildHost(parts);\n };\n URI.buildUserinfo = function(parts) {\n var t = '';\n\n if (parts.username) {\n t += URI.encode(parts.username);\n }\n\n if (parts.password) {\n t += ':' + URI.encode(parts.password);\n }\n\n if (t) {\n t += '@';\n }\n\n return t;\n };\n URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {\n // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html\n // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed\n // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!\n // URI.js treats the query string as being application/x-www-form-urlencoded\n // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type\n\n var t = '';\n var unique, key, i, length;\n for (key in data) {\n if (hasOwn.call(data, key)) {\n if (isArray(data[key])) {\n unique = {};\n for (i = 0, length = data[key].length; i < length; i++) {\n if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);\n if (duplicateQueryParameters !== true) {\n unique[data[key][i] + ''] = true;\n }\n }\n }\n } else if (data[key] !== undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);\n }\n }\n }\n\n return t.substring(1);\n };\n URI.buildQueryParameter = function(name, value, escapeQuerySpace) {\n // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded\n // don't append \"=\" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization\n return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');\n };\n\n URI.addQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.addQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (data[name] === undefined) {\n data[name] = value;\n return;\n } else if (typeof data[name] === 'string') {\n data[name] = [data[name]];\n }\n\n if (!isArray(value)) {\n value = [value];\n }\n\n data[name] = (data[name] || []).concat(value);\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.setQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.setQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n data[name] = value === undefined ? null : value;\n } else {\n throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.removeQuery = function(data, name, value) {\n var i, length, key;\n\n if (isArray(name)) {\n for (i = 0, length = name.length; i < length; i++) {\n data[name[i]] = undefined;\n }\n } else if (getType(name) === 'RegExp') {\n for (key in data) {\n if (name.test(key)) {\n data[key] = undefined;\n }\n }\n } else if (typeof name === 'object') {\n for (key in name) {\n if (hasOwn.call(name, key)) {\n URI.removeQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (value !== undefined) {\n if (getType(value) === 'RegExp') {\n if (!isArray(data[name]) && value.test(data[name])) {\n data[name] = undefined;\n } else {\n data[name] = filterArrayValues(data[name], value);\n }\n } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {\n data[name] = undefined;\n } else if (isArray(data[name])) {\n data[name] = filterArrayValues(data[name], value);\n }\n } else {\n data[name] = undefined;\n }\n } else {\n throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');\n }\n };\n URI.hasQuery = function(data, name, value, withinArray) {\n switch (getType(name)) {\n case 'String':\n // Nothing to do here\n break;\n\n case 'RegExp':\n for (var key in data) {\n if (hasOwn.call(data, key)) {\n if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {\n return true;\n }\n }\n }\n\n return false;\n\n case 'Object':\n for (var _key in name) {\n if (hasOwn.call(name, _key)) {\n if (!URI.hasQuery(data, _key, name[_key])) {\n return false;\n }\n }\n }\n\n return true;\n\n default:\n throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');\n }\n\n switch (getType(value)) {\n case 'Undefined':\n // true if exists (but may be empty)\n return name in data; // data[name] !== undefined;\n\n case 'Boolean':\n // true if exists and non-empty\n var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);\n return value === _booly;\n\n case 'Function':\n // allow complex comparison\n return !!value(data[name], name, data);\n\n case 'Array':\n if (!isArray(data[name])) {\n return false;\n }\n\n var op = withinArray ? arrayContains : arraysEqual;\n return op(data[name], value);\n\n case 'RegExp':\n if (!isArray(data[name])) {\n return Boolean(data[name] && data[name].match(value));\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n case 'Number':\n value = String(value);\n /* falls through */\n case 'String':\n if (!isArray(data[name])) {\n return data[name] === value;\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n default:\n throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');\n }\n };\n\n\n URI.joinPaths = function() {\n var input = [];\n var segments = [];\n var nonEmptySegments = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var url = new URI(arguments[i]);\n input.push(url);\n var _segments = url.segment();\n for (var s = 0; s < _segments.length; s++) {\n if (typeof _segments[s] === 'string') {\n segments.push(_segments[s]);\n }\n\n if (_segments[s]) {\n nonEmptySegments++;\n }\n }\n }\n\n if (!segments.length || !nonEmptySegments) {\n return new URI('');\n }\n\n var uri = new URI('').segment(segments);\n\n if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {\n uri.path('/' + uri.path());\n }\n\n return uri.normalize();\n };\n\n URI.commonPath = function(one, two) {\n var length = Math.min(one.length, two.length);\n var pos;\n\n // find first non-matching character\n for (pos = 0; pos < length; pos++) {\n if (one.charAt(pos) !== two.charAt(pos)) {\n pos--;\n break;\n }\n }\n\n if (pos < 1) {\n return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';\n }\n\n // revert to last /\n if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {\n pos = one.substring(0, pos).lastIndexOf('/');\n }\n\n return one.substring(0, pos + 1);\n };\n\n URI.withinString = function(string, callback, options) {\n options || (options = {});\n var _start = options.start || URI.findUri.start;\n var _end = options.end || URI.findUri.end;\n var _trim = options.trim || URI.findUri.trim;\n var _parens = options.parens || URI.findUri.parens;\n var _attributeOpen = /[a-z0-9-]=[\"']?$/i;\n\n _start.lastIndex = 0;\n while (true) {\n var match = _start.exec(string);\n if (!match) {\n break;\n }\n\n var start = match.index;\n if (options.ignoreHtml) {\n // attribut(e=[\"']?$)\n var attributeOpen = string.slice(Math.max(start - 3, 0), start);\n if (attributeOpen && _attributeOpen.test(attributeOpen)) {\n continue;\n }\n }\n\n var end = start + string.slice(start).search(_end);\n var slice = string.slice(start, end);\n // make sure we include well balanced parens\n var parensEnd = -1;\n while (true) {\n var parensMatch = _parens.exec(slice);\n if (!parensMatch) {\n break;\n }\n\n var parensMatchEnd = parensMatch.index + parensMatch[0].length;\n parensEnd = Math.max(parensEnd, parensMatchEnd);\n }\n\n if (parensEnd > -1) {\n slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');\n } else {\n slice = slice.replace(_trim, '');\n }\n\n if (slice.length <= match[0].length) {\n // the extract only contains the starting marker of a URI,\n // e.g. \"www\" or \"http://\"\n continue;\n }\n\n if (options.ignore && options.ignore.test(slice)) {\n continue;\n }\n\n end = start + slice.length;\n var result = callback(slice, start, end, string);\n if (result === undefined) {\n _start.lastIndex = end;\n continue;\n }\n\n result = String(result);\n string = string.slice(0, start) + result + string.slice(end);\n _start.lastIndex = start + result.length;\n }\n\n _start.lastIndex = 0;\n return string;\n };\n\n URI.ensureValidHostname = function(v, protocol) {\n // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)\n // they are not part of DNS and therefore ignored by URI.js\n\n var hasHostname = !!v; // not null and not an empty string\n var hasProtocol = !!protocol;\n var rejectEmptyHostname = false;\n\n if (hasProtocol) {\n rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);\n }\n\n if (rejectEmptyHostname && !hasHostname) {\n throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);\n } else if (v && v.match(URI.invalid_hostname_characters)) {\n // test punycode\n if (!punycode) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');\n }\n if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_]');\n }\n }\n };\n\n URI.ensureValidPort = function (v) {\n if (!v) {\n return;\n }\n\n var port = Number(v);\n if (isInteger(port) && (port > 0) && (port < 65536)) {\n return;\n }\n\n throw new TypeError('Port \"' + v + '\" is not a valid port');\n };\n\n // noConflict\n URI.noConflict = function(removeAll) {\n if (removeAll) {\n var unconflicted = {\n URI: this.noConflict()\n };\n\n if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {\n unconflicted.URITemplate = root.URITemplate.noConflict();\n }\n\n if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {\n unconflicted.IPv6 = root.IPv6.noConflict();\n }\n\n if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {\n unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();\n }\n\n return unconflicted;\n } else if (root.URI === this) {\n root.URI = _URI;\n }\n\n return this;\n };\n\n p.build = function(deferBuild) {\n if (deferBuild === true) {\n this._deferred_build = true;\n } else if (deferBuild === undefined || this._deferred_build) {\n this._string = URI.build(this._parts);\n this._deferred_build = false;\n }\n\n return this;\n };\n\n p.clone = function() {\n return new URI(this);\n };\n\n p.valueOf = p.toString = function() {\n return this.build(false)._string;\n };\n\n\n function generateSimpleAccessor(_part){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n this._parts[_part] = v || null;\n this.build(!build);\n return this;\n }\n };\n }\n\n function generatePrefixAccessor(_part, _key){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n if (v !== null) {\n v = v + '';\n if (v.charAt(0) === _key) {\n v = v.substring(1);\n }\n }\n\n this._parts[_part] = v;\n this.build(!build);\n return this;\n }\n };\n }\n\n p.protocol = generateSimpleAccessor('protocol');\n p.username = generateSimpleAccessor('username');\n p.password = generateSimpleAccessor('password');\n p.hostname = generateSimpleAccessor('hostname');\n p.port = generateSimpleAccessor('port');\n p.query = generatePrefixAccessor('query', '?');\n p.fragment = generatePrefixAccessor('fragment', '#');\n\n p.search = function(v, build) {\n var t = this.query(v, build);\n return typeof t === 'string' && t.length ? ('?' + t) : t;\n };\n p.hash = function(v, build) {\n var t = this.fragment(v, build);\n return typeof t === 'string' && t.length ? ('#' + t) : t;\n };\n\n p.pathname = function(v, build) {\n if (v === undefined || v === true) {\n var res = this._parts.path || (this._parts.hostname ? '/' : '');\n return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;\n } else {\n if (this._parts.urn) {\n this._parts.path = v ? URI.recodeUrnPath(v) : '';\n } else {\n this._parts.path = v ? URI.recodePath(v) : '/';\n }\n this.build(!build);\n return this;\n }\n };\n p.path = p.pathname;\n p.href = function(href, build) {\n var key;\n\n if (href === undefined) {\n return this.toString();\n }\n\n this._string = '';\n this._parts = URI._parts();\n\n var _URI = href instanceof URI;\n var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);\n if (href.nodeName) {\n var attribute = URI.getDomAttribute(href);\n href = href[attribute] || '';\n _object = false;\n }\n\n // window.location is reported to be an object, but it's not the sort\n // of object we're looking for:\n // * location.protocol ends with a colon\n // * location.query != object.search\n // * location.hash != object.fragment\n // simply serializing the unknown object should do the trick\n // (for location, not for everything...)\n if (!_URI && _object && href.pathname !== undefined) {\n href = href.toString();\n }\n\n if (typeof href === 'string' || href instanceof String) {\n this._parts = URI.parse(String(href), this._parts);\n } else if (_URI || _object) {\n var src = _URI ? href._parts : href;\n for (key in src) {\n if (key === 'query') { continue; }\n if (hasOwn.call(this._parts, key)) {\n this._parts[key] = src[key];\n }\n }\n if (src.query) {\n this.query(src.query, false);\n }\n } else {\n throw new TypeError('invalid input');\n }\n\n this.build(!build);\n return this;\n };\n\n // identification accessors\n p.is = function(what) {\n var ip = false;\n var ip4 = false;\n var ip6 = false;\n var name = false;\n var sld = false;\n var idn = false;\n var punycode = false;\n var relative = !this._parts.urn;\n\n if (this._parts.hostname) {\n relative = false;\n ip4 = URI.ip4_expression.test(this._parts.hostname);\n ip6 = URI.ip6_expression.test(this._parts.hostname);\n ip = ip4 || ip6;\n name = !ip;\n sld = name && SLD && SLD.has(this._parts.hostname);\n idn = name && URI.idn_expression.test(this._parts.hostname);\n punycode = name && URI.punycode_expression.test(this._parts.hostname);\n }\n\n switch (what.toLowerCase()) {\n case 'relative':\n return relative;\n\n case 'absolute':\n return !relative;\n\n // hostname identification\n case 'domain':\n case 'name':\n return name;\n\n case 'sld':\n return sld;\n\n case 'ip':\n return ip;\n\n case 'ip4':\n case 'ipv4':\n case 'inet4':\n return ip4;\n\n case 'ip6':\n case 'ipv6':\n case 'inet6':\n return ip6;\n\n case 'idn':\n return idn;\n\n case 'url':\n return !this._parts.urn;\n\n case 'urn':\n return !!this._parts.urn;\n\n case 'punycode':\n return punycode;\n }\n\n return null;\n };\n\n // component specific input validation\n var _protocol = p.protocol;\n var _port = p.port;\n var _hostname = p.hostname;\n\n p.protocol = function(v, build) {\n if (v) {\n // accept trailing ://\n v = v.replace(/:(\\/\\/)?$/, '');\n\n if (!v.match(URI.protocol_expression)) {\n throw new TypeError('Protocol \"' + v + '\" contains characters other than [A-Z0-9.+-] or doesn\\'t start with [A-Z]');\n }\n }\n\n return _protocol.call(this, v, build);\n };\n p.scheme = p.protocol;\n p.port = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n if (v === 0) {\n v = null;\n }\n\n if (v) {\n v += '';\n if (v.charAt(0) === ':') {\n v = v.substring(1);\n }\n\n URI.ensureValidPort(v);\n }\n }\n return _port.call(this, v, build);\n };\n p.hostname = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n var x = { preventInvalidHostname: this._parts.preventInvalidHostname };\n var res = URI.parseHost(v, x);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n v = x.hostname;\n if (this._parts.preventInvalidHostname) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n }\n\n return _hostname.call(this, v, build);\n };\n\n // compound accessors\n p.origin = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var protocol = this.protocol();\n var authority = this.authority();\n if (!authority) {\n return '';\n }\n\n return (protocol ? protocol + '://' : '') + this.authority();\n } else {\n var origin = URI(v);\n this\n .protocol(origin.protocol())\n .authority(origin.authority())\n .build(!build);\n return this;\n }\n };\n p.host = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildHost(this._parts) : '';\n } else {\n var res = URI.parseHost(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.authority = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildAuthority(this._parts) : '';\n } else {\n var res = URI.parseAuthority(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.userinfo = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var t = URI.buildUserinfo(this._parts);\n return t ? t.substring(0, t.length -1) : t;\n } else {\n if (v[v.length-1] !== '@') {\n v += '@';\n }\n\n URI.parseUserinfo(v, this._parts);\n this.build(!build);\n return this;\n }\n };\n p.resource = function(v, build) {\n var parts;\n\n if (v === undefined) {\n return this.path() + this.search() + this.hash();\n }\n\n parts = URI.parse(v);\n this._parts.path = parts.path;\n this._parts.query = parts.query;\n this._parts.fragment = parts.fragment;\n this.build(!build);\n return this;\n };\n\n // fraction accessors\n p.subdomain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n // convenience, return \"www\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // grab domain and add another segment\n var end = this._parts.hostname.length - this.domain().length - 1;\n return this._parts.hostname.substring(0, end) || '';\n } else {\n var e = this._parts.hostname.length - this.domain().length;\n var sub = this._parts.hostname.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(sub));\n\n if (v && v.charAt(v.length - 1) !== '.') {\n v += '.';\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n if (v) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.domain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // convenience, return \"example.org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // if hostname consists of 1 or 2 segments, it must be the domain\n var t = this._parts.hostname.match(/\\./g);\n if (t && t.length < 2) {\n return this._parts.hostname;\n }\n\n // grab tld and add another segment\n var end = this._parts.hostname.length - this.tld(build).length - 1;\n end = this._parts.hostname.lastIndexOf('.', end -1) + 1;\n return this._parts.hostname.substring(end) || '';\n } else {\n if (!v) {\n throw new TypeError('cannot set domain empty');\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n URI.ensureValidHostname(v, this._parts.protocol);\n\n if (!this._parts.hostname || this.is('IP')) {\n this._parts.hostname = v;\n } else {\n var replace = new RegExp(escapeRegEx(this.domain()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.tld = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // return \"org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n var pos = this._parts.hostname.lastIndexOf('.');\n var tld = this._parts.hostname.substring(pos + 1);\n\n if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {\n return SLD.get(this._parts.hostname) || tld;\n }\n\n return tld;\n } else {\n var replace;\n\n if (!v) {\n throw new TypeError('cannot set TLD empty');\n } else if (v.match(/[^a-zA-Z0-9-]/)) {\n if (SLD && SLD.is(v)) {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n } else {\n throw new TypeError('TLD \"' + v + '\" contains characters other than [A-Z0-9]');\n }\n } else if (!this._parts.hostname || this.is('IP')) {\n throw new ReferenceError('cannot set TLD on non-domain host');\n } else {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.directory = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path && !this._parts.hostname) {\n return '';\n }\n\n if (this._parts.path === '/') {\n return '/';\n }\n\n var end = this._parts.path.length - this.filename().length - 1;\n var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');\n\n return v ? URI.decodePath(res) : res;\n\n } else {\n var e = this._parts.path.length - this.filename().length;\n var directory = this._parts.path.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(directory));\n\n // fully qualifier directories begin with a slash\n if (!this.is('relative')) {\n if (!v) {\n v = '/';\n }\n\n if (v.charAt(0) !== '/') {\n v = '/' + v;\n }\n }\n\n // directories always end with a slash\n if (v && v.charAt(v.length - 1) !== '/') {\n v += '/';\n }\n\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.filename = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v !== 'string') {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var pos = this._parts.path.lastIndexOf('/');\n var res = this._parts.path.substring(pos+1);\n\n return v ? URI.decodePathSegment(res) : res;\n } else {\n var mutatedDirectory = false;\n\n if (v.charAt(0) === '/') {\n v = v.substring(1);\n }\n\n if (v.match(/\\.?\\//)) {\n mutatedDirectory = true;\n }\n\n var replace = new RegExp(escapeRegEx(this.filename()) + '$');\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n\n if (mutatedDirectory) {\n this.normalizePath(build);\n } else {\n this.build(!build);\n }\n\n return this;\n }\n };\n p.suffix = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var filename = this.filename();\n var pos = filename.lastIndexOf('.');\n var s, res;\n\n if (pos === -1) {\n return '';\n }\n\n // suffix may only contain alnum characters (yup, I made this up.)\n s = filename.substring(pos+1);\n res = (/^[a-z0-9%]+$/i).test(s) ? s : '';\n return v ? URI.decodePathSegment(res) : res;\n } else {\n if (v.charAt(0) === '.') {\n v = v.substring(1);\n }\n\n var suffix = this.suffix();\n var replace;\n\n if (!suffix) {\n if (!v) {\n return this;\n }\n\n this._parts.path += '.' + URI.recodePath(v);\n } else if (!v) {\n replace = new RegExp(escapeRegEx('.' + suffix) + '$');\n } else {\n replace = new RegExp(escapeRegEx(suffix) + '$');\n }\n\n if (replace) {\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.segment = function(segment, v, build) {\n var separator = this._parts.urn ? ':' : '/';\n var path = this.path();\n var absolute = path.substring(0, 1) === '/';\n var segments = path.split(separator);\n\n if (segment !== undefined && typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (segment !== undefined && typeof segment !== 'number') {\n throw new Error('Bad segment \"' + segment + '\", must be 0-based integer');\n }\n\n if (absolute) {\n segments.shift();\n }\n\n if (segment < 0) {\n // allow negative indexes to address from the end\n segment = Math.max(segments.length + segment, 0);\n }\n\n if (v === undefined) {\n /*jshint laxbreak: true */\n return segment === undefined\n ? segments\n : segments[segment];\n /*jshint laxbreak: false */\n } else if (segment === null || segments[segment] === undefined) {\n if (isArray(v)) {\n segments = [];\n // collapse empty elements within array\n for (var i=0, l=v.length; i < l; i++) {\n if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {\n continue;\n }\n\n if (segments.length && !segments[segments.length -1].length) {\n segments.pop();\n }\n\n segments.push(trimSlashes(v[i]));\n }\n } else if (v || typeof v === 'string') {\n v = trimSlashes(v);\n if (segments[segments.length -1] === '') {\n // empty trailing elements have to be overwritten\n // to prevent results such as /foo//bar\n segments[segments.length -1] = v;\n } else {\n segments.push(v);\n }\n }\n } else {\n if (v) {\n segments[segment] = trimSlashes(v);\n } else {\n segments.splice(segment, 1);\n }\n }\n\n if (absolute) {\n segments.unshift('');\n }\n\n return this.path(segments.join(separator), build);\n };\n p.segmentCoded = function(segment, v, build) {\n var segments, i, l;\n\n if (typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (v === undefined) {\n segments = this.segment(segment, v, build);\n if (!isArray(segments)) {\n segments = segments !== undefined ? URI.decode(segments) : undefined;\n } else {\n for (i = 0, l = segments.length; i < l; i++) {\n segments[i] = URI.decode(segments[i]);\n }\n }\n\n return segments;\n }\n\n if (!isArray(v)) {\n v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;\n } else {\n for (i = 0, l = v.length; i < l; i++) {\n v[i] = URI.encode(v[i]);\n }\n }\n\n return this.segment(segment, v, build);\n };\n\n // mutating query string\n var q = p.query;\n p.query = function(v, build) {\n if (v === true) {\n return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n } else if (typeof v === 'function') {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n var result = v.call(this, data);\n this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else if (v !== undefined && typeof v !== 'string') {\n this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else {\n return q.call(this, v, build);\n }\n };\n p.setQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n\n if (typeof name === 'string' || name instanceof String) {\n data[name] = value !== undefined ? value : null;\n } else if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n data[key] = name[key];\n }\n }\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.addQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.addQuery(data, name, value === undefined ? null : value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.removeQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.removeQuery(data, name, value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.hasQuery = function(name, value, withinArray) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n return URI.hasQuery(data, name, value, withinArray);\n };\n p.setSearch = p.setQuery;\n p.addSearch = p.addQuery;\n p.removeSearch = p.removeQuery;\n p.hasSearch = p.hasQuery;\n\n // sanitizing URLs\n p.normalize = function() {\n if (this._parts.urn) {\n return this\n .normalizeProtocol(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n }\n\n return this\n .normalizeProtocol(false)\n .normalizeHostname(false)\n .normalizePort(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n };\n p.normalizeProtocol = function(build) {\n if (typeof this._parts.protocol === 'string') {\n this._parts.protocol = this._parts.protocol.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeHostname = function(build) {\n if (this._parts.hostname) {\n if (this.is('IDN') && punycode) {\n this._parts.hostname = punycode.toASCII(this._parts.hostname);\n } else if (this.is('IPv6') && IPv6) {\n this._parts.hostname = IPv6.best(this._parts.hostname);\n }\n\n this._parts.hostname = this._parts.hostname.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePort = function(build) {\n // remove port of it's the protocol's default\n if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {\n this._parts.port = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePath = function(build) {\n var _path = this._parts.path;\n if (!_path) {\n return this;\n }\n\n if (this._parts.urn) {\n this._parts.path = URI.recodeUrnPath(this._parts.path);\n this.build(!build);\n return this;\n }\n\n if (this._parts.path === '/') {\n return this;\n }\n\n _path = URI.recodePath(_path);\n\n var _was_relative;\n var _leadingParents = '';\n var _parent, _pos;\n\n // handle relative paths\n if (_path.charAt(0) !== '/') {\n _was_relative = true;\n _path = '/' + _path;\n }\n\n // handle relative files (as opposed to directories)\n if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {\n _path += '/';\n }\n\n // resolve simples\n _path = _path\n .replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/')\n .replace(/\\/{2,}/g, '/');\n\n // remember leading parents\n if (_was_relative) {\n _leadingParents = _path.substring(1).match(/^(\\.\\.\\/)+/) || '';\n if (_leadingParents) {\n _leadingParents = _leadingParents[0];\n }\n }\n\n // resolve parents\n while (true) {\n _parent = _path.search(/\\/\\.\\.(\\/|$)/);\n if (_parent === -1) {\n // no more ../ to resolve\n break;\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n _path = _path.substring(3);\n continue;\n }\n\n _pos = _path.substring(0, _parent).lastIndexOf('/');\n if (_pos === -1) {\n _pos = _parent;\n }\n _path = _path.substring(0, _pos) + _path.substring(_parent + 3);\n }\n\n // revert to relative\n if (_was_relative && this.is('relative')) {\n _path = _leadingParents + _path.substring(1);\n }\n\n this._parts.path = _path;\n this.build(!build);\n return this;\n };\n p.normalizePathname = p.normalizePath;\n p.normalizeQuery = function(build) {\n if (typeof this._parts.query === 'string') {\n if (!this._parts.query.length) {\n this._parts.query = null;\n } else {\n this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));\n }\n\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeFragment = function(build) {\n if (!this._parts.fragment) {\n this._parts.fragment = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeSearch = p.normalizeQuery;\n p.normalizeHash = p.normalizeFragment;\n\n p.iso8859 = function() {\n // expect unicode input, iso8859 output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = escape;\n URI.decode = decodeURIComponent;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.unicode = function() {\n // expect iso8859 input, unicode output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = strictEncodeURIComponent;\n URI.decode = unescape;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.readable = function() {\n var uri = this.clone();\n // removing username, password, because they shouldn't be displayed according to RFC 3986\n uri.username('').password('').normalize();\n var t = '';\n if (uri._parts.protocol) {\n t += uri._parts.protocol + '://';\n }\n\n if (uri._parts.hostname) {\n if (uri.is('punycode') && punycode) {\n t += punycode.toUnicode(uri._parts.hostname);\n if (uri._parts.port) {\n t += ':' + uri._parts.port;\n }\n } else {\n t += uri.host();\n }\n }\n\n if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {\n t += '/';\n }\n\n t += uri.path(true);\n if (uri._parts.query) {\n var q = '';\n for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {\n var kv = (qp[i] || '').split('=');\n q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n\n if (kv[1] !== undefined) {\n q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n }\n }\n t += '?' + q.substring(1);\n }\n\n t += URI.decodeQuery(uri.hash(), true);\n return t;\n };\n\n // resolving relative and absolute URLs\n p.absoluteTo = function(base) {\n var resolved = this.clone();\n var properties = ['protocol', 'username', 'password', 'hostname', 'port'];\n var basedir, i, p;\n\n if (this._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n if (!(base instanceof URI)) {\n base = new URI(base);\n }\n\n if (resolved._parts.protocol) {\n // Directly returns even if this._parts.hostname is empty.\n return resolved;\n } else {\n resolved._parts.protocol = base._parts.protocol;\n }\n\n if (this._parts.hostname) {\n return resolved;\n }\n\n for (i = 0; (p = properties[i]); i++) {\n resolved._parts[p] = base._parts[p];\n }\n\n if (!resolved._parts.path) {\n resolved._parts.path = base._parts.path;\n if (!resolved._parts.query) {\n resolved._parts.query = base._parts.query;\n }\n } else {\n if (resolved._parts.path.substring(-2) === '..') {\n resolved._parts.path += '/';\n }\n\n if (resolved.path().charAt(0) !== '/') {\n basedir = base.directory();\n basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';\n resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;\n resolved.normalizePath();\n }\n }\n\n resolved.build();\n return resolved;\n };\n p.relativeTo = function(base) {\n var relative = this.clone().normalize();\n var relativeParts, baseParts, common, relativePath, basePath;\n\n if (relative._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n base = new URI(base).normalize();\n relativeParts = relative._parts;\n baseParts = base._parts;\n relativePath = relative.path();\n basePath = base.path();\n\n if (relativePath.charAt(0) !== '/') {\n throw new Error('URI is already relative');\n }\n\n if (basePath.charAt(0) !== '/') {\n throw new Error('Cannot calculate a URI relative to another relative URI');\n }\n\n if (relativeParts.protocol === baseParts.protocol) {\n relativeParts.protocol = null;\n }\n\n if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {\n return relative.build();\n }\n\n if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {\n return relative.build();\n }\n\n if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {\n relativeParts.hostname = null;\n relativeParts.port = null;\n } else {\n return relative.build();\n }\n\n if (relativePath === basePath) {\n relativeParts.path = '';\n return relative.build();\n }\n\n // determine common sub path\n common = URI.commonPath(relativePath, basePath);\n\n // If the paths have nothing in common, return a relative URL with the absolute path.\n if (!common) {\n return relative.build();\n }\n\n var parents = baseParts.path\n .substring(common.length)\n .replace(/[^\\/]*$/, '')\n .replace(/.*?\\//g, '../');\n\n relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';\n\n return relative.build();\n };\n\n // comparing URIs\n p.equals = function(uri) {\n var one = this.clone();\n var two = new URI(uri);\n var one_map = {};\n var two_map = {};\n var checked = {};\n var one_query, two_query, key;\n\n one.normalize();\n two.normalize();\n\n // exact match\n if (one.toString() === two.toString()) {\n return true;\n }\n\n // extract query string\n one_query = one.query();\n two_query = two.query();\n one.query('');\n two.query('');\n\n // definitely not equal if not even non-query parts match\n if (one.toString() !== two.toString()) {\n return false;\n }\n\n // query parameters have the same length, even if they're permuted\n if (one_query.length !== two_query.length) {\n return false;\n }\n\n one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);\n two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);\n\n for (key in one_map) {\n if (hasOwn.call(one_map, key)) {\n if (!isArray(one_map[key])) {\n if (one_map[key] !== two_map[key]) {\n return false;\n }\n } else if (!arraysEqual(one_map[key], two_map[key])) {\n return false;\n }\n\n checked[key] = true;\n }\n }\n\n for (key in two_map) {\n if (hasOwn.call(two_map, key)) {\n if (!checked[key]) {\n // two contains a parameter not present in one\n return false;\n }\n }\n }\n\n return true;\n };\n\n // state\n p.preventInvalidHostname = function(v) {\n this._parts.preventInvalidHostname = !!v;\n return this;\n };\n\n p.duplicateQueryParameters = function(v) {\n this._parts.duplicateQueryParameters = !!v;\n return this;\n };\n\n p.escapeQuerySpace = function(v) {\n this._parts.escapeQuerySpace = !!v;\n return this;\n };\n\n return URI;\n}));\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.WHATWGFetch = {})));\n}(this, (function (exports) { 'use strict';\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n"]}