wp/wp-includes/js/dist/vendor/react.js
changeset 21 48c4eec2b7e6
parent 19 3d72ae0968f4
child 22 8c2e4d02f4ef
equal deleted inserted replaced
20:7b1b88e27a20 21:48c4eec2b7e6
     1 /** @license React v17.0.2
     1 /*
     2  * react.development.js
     2  * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
     3  *
     3  * This devtool is neither made for production nor for readable output files.
     4  * Copyright (c) Facebook, Inc. and its affiliates.
     4  * It uses "eval()" calls to create a separate source file in the browser devtools.
     5  *
     5  * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
     6  * This source code is licensed under the MIT license found in the
     6  * or disable the default devtool with "devtool: false".
     7  * LICENSE file in the root directory of this source tree.
     7  * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
     8  */
     8  */
     9 (function (global, factory) {
     9 /******/ (() => { // webpackBootstrap
    10   typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
    10 /******/ 	"use strict";
    11   typeof define === 'function' && define.amd ? define(['exports'], factory) :
    11 /******/ 	var __webpack_modules__ = ({
    12   (global = global || self, factory(global.React = {}));
       
    13 }(this, (function (exports) { 'use strict';
       
    14 
    12 
    15   // TODO: this is special because it gets imported during build.
    13 /***/ "./node_modules/react/cjs/react.development.js":
    16   var ReactVersion = '17.0.2';
    14 /*!*****************************************************!*\
       
    15   !*** ./node_modules/react/cjs/react.development.js ***!
       
    16   \*****************************************************/
       
    17 /***/ ((module, exports, __webpack_require__) => {
    17 
    18 
    18   // ATTENTION
    19 eval("/* module decorator */ module = __webpack_require__.nmd(module);\n/**\n * @license React\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\n\nif (true) {\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 ReactVersion = '18.3.1';\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_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');\nvar MAYBE_ITERATOR_SYMBOL = 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: null\n};\n\nvar ReactCurrentActQueue = {\n  current: null,\n  // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n  isBatchingLegacy: false,\n  didScheduleLegacyUpdate: false\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\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 ReactSharedInternals = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n  ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n  ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n  ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\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    {\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  }\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\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 assign = Object.assign;\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    throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\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\nassign(pureComponentPrototype, Component.prototype);\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\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(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 getComponentNameFromType(). ' + '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\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        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\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 getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\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 = getComponentNameFromType(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      {\n        checkKeyStringCoercion(config.key);\n      }\n\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    throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n  }\n\n  var propName; // Original props are copied\n\n  var props = assign({}, element.props); // Reserved names are extracted\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      {\n        checkKeyStringCoercion(config.key);\n      }\n\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    {\n      checkKeyStringCoercion(element.key);\n    }\n\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 (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        {\n          // The `if` statement here prevents auto-disabling of the safe\n          // coercion ESLint rule, so we must manually disable it below.\n          // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n          if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n            checkKeyStringCoercion(mappedChild.key);\n          }\n        }\n\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        // eslint-disable-next-line react-internal/safe-string-coercion\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 (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      // eslint-disable-next-line react-internal/safe-string-coercion\n      var childrenString = String(children);\n      throw new 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  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    throw new Error('React.Children.only expected to receive a single React element child.');\n  }\n\n  return children;\n}\n\nfunction createContext(defaultValue) {\n  // TODO: Second argument used to be an optional `calculateChangedBits`\n  // function. Warn to reserve for future use?\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\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    // Add these to use same hidden class in VM as ServerContext\n    _defaultValue: null,\n    _globalName: 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    }; // $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    // This might throw either because it's missing or throws. If so, we treat it\n    // as still uninitialized and try again next time. Which is the same as what\n    // happens if the ctor or any wrappers processing the ctor throws. This might\n    // end up fixing it if the resolution was a concurrency bug.\n\n    thenable.then(function (moduleObject) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var resolved = payload;\n        resolved._status = Resolved;\n        resolved._result = moduleObject;\n      }\n    }, function (error) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var rejected = payload;\n        rejected._status = Rejected;\n        rejected._result = error;\n      }\n    });\n\n    if (payload._status === Uninitialized) {\n      // In case, we're still uninitialized, then we're waiting for the thenable\n      // to resolve. Set it as pending in the meantime.\n      var pending = payload;\n      pending._status = Pending;\n      pending._result = thenable;\n    }\n  }\n\n  if (payload._status === Resolved) {\n    var moduleObject = payload._result;\n\n    {\n      if (moduleObject === undefined) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() 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'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n      }\n    }\n\n    {\n      if (!('default' in moduleObject)) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() 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    }\n\n    return moduleObject.default;\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: Uninitialized,\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; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.forwardRef((props, ref) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!render.name && !render.displayName) {\n          render.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\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 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; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.memo((props) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!type.name && !type.displayName) {\n          type.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\n\nfunction resolveDispatcher() {\n  var dispatcher = ReactCurrentDispatcher.current;\n\n  {\n    if (dispatcher === null) {\n      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:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n    }\n  } // Will result in a null access error if accessed outside render phase. We\n  // intentionally don't throw our own error because this is in a hot path.\n  // Also helps ensure this is inlined.\n\n\n  return dispatcher;\n}\nfunction useContext(Context) {\n  var dispatcher = resolveDispatcher();\n\n  {\n    // TODO: add a more generic warning for invalid values.\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);\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 useInsertionEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useInsertionEffect(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}\nfunction useTransition() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\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 '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\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 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_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(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            // eslint-disable-next-line react-internal/prod-error-codes\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 = getComponentNameFromType(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 \" + getComponentNameFromType(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 (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 = getComponentNameFromType(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 = getComponentNameFromType(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 (isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = \"<\" + (getComponentNameFromType(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 === REACT_FRAGMENT_TYPE) {\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\nfunction startTransition(scope, options) {\n  var prevTransition = ReactCurrentBatchConfig.transition;\n  ReactCurrentBatchConfig.transition = {};\n  var currentTransition = ReactCurrentBatchConfig.transition;\n\n  {\n    ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n  }\n\n  try {\n    scope();\n  } finally {\n    ReactCurrentBatchConfig.transition = prevTransition;\n\n    {\n      if (prevTransition === null && currentTransition._updatedFibers) {\n        var updatedFibersCount = currentTransition._updatedFibers.size;\n\n        if (updatedFibersCount > 10) {\n          warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n        }\n\n        currentTransition._updatedFibers.clear();\n      }\n    }\n  }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n  if (enqueueTaskImpl === null) {\n    try {\n      // read require off the module object to get around the bundlers.\n      // we don't want them to detect a require and bundle a Node polyfill.\n      var requireString = ('require' + Math.random()).slice(0, 7);\n      var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n      // version of setImmediate, bypassing fake timers if any.\n\n      enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n    } catch (_err) {\n      // we're in a browser\n      // we can't use regular timers because they may still be faked\n      // so we try MessageChannel+postMessage instead\n      enqueueTaskImpl = function (callback) {\n        {\n          if (didWarnAboutMessageChannel === false) {\n            didWarnAboutMessageChannel = true;\n\n            if (typeof MessageChannel === 'undefined') {\n              error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n            }\n          }\n        }\n\n        var channel = new MessageChannel();\n        channel.port1.onmessage = callback;\n        channel.port2.postMessage(undefined);\n      };\n    }\n  }\n\n  return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n  {\n    // `act` calls can be nested, so we track the depth. This represents the\n    // number of `act` scopes on the stack.\n    var prevActScopeDepth = actScopeDepth;\n    actScopeDepth++;\n\n    if (ReactCurrentActQueue.current === null) {\n      // This is the outermost `act` scope. Initialize the queue. The reconciler\n      // will detect the queue and use it instead of Scheduler.\n      ReactCurrentActQueue.current = [];\n    }\n\n    var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n    var result;\n\n    try {\n      // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n      // set to `true` while the given callback is executed, not for updates\n      // triggered during an async event, because this is how the legacy\n      // implementation of `act` behaved.\n      ReactCurrentActQueue.isBatchingLegacy = true;\n      result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n      // which flushed updates immediately after the scope function exits, even\n      // if it's an async function.\n\n      if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n        var queue = ReactCurrentActQueue.current;\n\n        if (queue !== null) {\n          ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n          flushActQueue(queue);\n        }\n      }\n    } catch (error) {\n      popActScope(prevActScopeDepth);\n      throw error;\n    } finally {\n      ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n    }\n\n    if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n      var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n      // for it to resolve before exiting the current scope.\n\n      var wasAwaited = false;\n      var thenable = {\n        then: function (resolve, reject) {\n          wasAwaited = true;\n          thenableResult.then(function (returnValue) {\n            popActScope(prevActScopeDepth);\n\n            if (actScopeDepth === 0) {\n              // We've exited the outermost act scope. Recursively flush the\n              // queue until there's no remaining work.\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }, function (error) {\n            // The callback threw an error.\n            popActScope(prevActScopeDepth);\n            reject(error);\n          });\n        }\n      };\n\n      {\n        if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n          // eslint-disable-next-line no-undef\n          Promise.resolve().then(function () {}).then(function () {\n            if (!wasAwaited) {\n              didWarnNoAwaitAct = true;\n\n              error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n            }\n          });\n        }\n      }\n\n      return thenable;\n    } else {\n      var returnValue = result; // The callback is not an async function. Exit the current scope\n      // immediately, without awaiting.\n\n      popActScope(prevActScopeDepth);\n\n      if (actScopeDepth === 0) {\n        // Exiting the outermost act scope. Flush the queue.\n        var _queue = ReactCurrentActQueue.current;\n\n        if (_queue !== null) {\n          flushActQueue(_queue);\n          ReactCurrentActQueue.current = null;\n        } // Return a thenable. If the user awaits it, we'll flush again in\n        // case additional work was scheduled by a microtask.\n\n\n        var _thenable = {\n          then: function (resolve, reject) {\n            // Confirm we haven't re-entered another `act` scope, in case\n            // the user does something weird like await the thenable\n            // multiple times.\n            if (ReactCurrentActQueue.current === null) {\n              // Recursively flush the queue until there's no remaining work.\n              ReactCurrentActQueue.current = [];\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }\n        };\n        return _thenable;\n      } else {\n        // Since we're inside a nested `act` scope, the returned thenable\n        // immediately resolves. The outer scope will flush the queue.\n        var _thenable2 = {\n          then: function (resolve, reject) {\n            resolve(returnValue);\n          }\n        };\n        return _thenable2;\n      }\n    }\n  }\n}\n\nfunction popActScope(prevActScopeDepth) {\n  {\n    if (prevActScopeDepth !== actScopeDepth - 1) {\n      error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n    }\n\n    actScopeDepth = prevActScopeDepth;\n  }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n  {\n    var queue = ReactCurrentActQueue.current;\n\n    if (queue !== null) {\n      try {\n        flushActQueue(queue);\n        enqueueTask(function () {\n          if (queue.length === 0) {\n            // No additional work was scheduled. Finish.\n            ReactCurrentActQueue.current = null;\n            resolve(returnValue);\n          } else {\n            // Keep flushing work until there's none left.\n            recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n          }\n        });\n      } catch (error) {\n        reject(error);\n      }\n    } else {\n      resolve(returnValue);\n    }\n  }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n  {\n    if (!isFlushing) {\n      // Prevent re-entrance.\n      isFlushing = true;\n      var i = 0;\n\n      try {\n        for (; i < queue.length; i++) {\n          var callback = queue[i];\n\n          do {\n            callback = callback(true);\n          } while (callback !== null);\n        }\n\n        queue.length = 0;\n      } catch (error) {\n        // If something throws, leave the remaining callbacks on the queue.\n        queue = queue.slice(i + 1);\n        throw error;\n      } finally {\n        isFlushing = false;\n      }\n    }\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.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.act = act;\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.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\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\n//# sourceURL=webpack://WordPress/./node_modules/react/cjs/react.development.js?");
    19   // When adding new symbols to this file,
       
    20   // Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'
       
    21   // The Symbol used to tag the ReactElement-like types. If there is no native Symbol
       
    22   // nor polyfill, then a plain number is used for performance.
       
    23   var REACT_ELEMENT_TYPE = 0xeac7;
       
    24   var REACT_PORTAL_TYPE = 0xeaca;
       
    25   exports.Fragment = 0xeacb;
       
    26   exports.StrictMode = 0xeacc;
       
    27   exports.Profiler = 0xead2;
       
    28   var REACT_PROVIDER_TYPE = 0xeacd;
       
    29   var REACT_CONTEXT_TYPE = 0xeace;
       
    30   var REACT_FORWARD_REF_TYPE = 0xead0;
       
    31   exports.Suspense = 0xead1;
       
    32   var REACT_SUSPENSE_LIST_TYPE = 0xead8;
       
    33   var REACT_MEMO_TYPE = 0xead3;
       
    34   var REACT_LAZY_TYPE = 0xead4;
       
    35   var REACT_BLOCK_TYPE = 0xead9;
       
    36   var REACT_SERVER_BLOCK_TYPE = 0xeada;
       
    37   var REACT_FUNDAMENTAL_TYPE = 0xead5;
       
    38   var REACT_SCOPE_TYPE = 0xead7;
       
    39   var REACT_OPAQUE_ID_TYPE = 0xeae0;
       
    40   var REACT_DEBUG_TRACING_MODE_TYPE = 0xeae1;
       
    41   var REACT_OFFSCREEN_TYPE = 0xeae2;
       
    42   var REACT_LEGACY_HIDDEN_TYPE = 0xeae3;
       
    43 
    20 
    44   if (typeof Symbol === 'function' && Symbol.for) {
    21 /***/ }),
    45     var symbolFor = Symbol.for;
       
    46     REACT_ELEMENT_TYPE = symbolFor('react.element');
       
    47     REACT_PORTAL_TYPE = symbolFor('react.portal');
       
    48     exports.Fragment = symbolFor('react.fragment');
       
    49     exports.StrictMode = symbolFor('react.strict_mode');
       
    50     exports.Profiler = symbolFor('react.profiler');
       
    51     REACT_PROVIDER_TYPE = symbolFor('react.provider');
       
    52     REACT_CONTEXT_TYPE = symbolFor('react.context');
       
    53     REACT_FORWARD_REF_TYPE = symbolFor('react.forward_ref');
       
    54     exports.Suspense = symbolFor('react.suspense');
       
    55     REACT_SUSPENSE_LIST_TYPE = symbolFor('react.suspense_list');
       
    56     REACT_MEMO_TYPE = symbolFor('react.memo');
       
    57     REACT_LAZY_TYPE = symbolFor('react.lazy');
       
    58     REACT_BLOCK_TYPE = symbolFor('react.block');
       
    59     REACT_SERVER_BLOCK_TYPE = symbolFor('react.server.block');
       
    60     REACT_FUNDAMENTAL_TYPE = symbolFor('react.fundamental');
       
    61     REACT_SCOPE_TYPE = symbolFor('react.scope');
       
    62     REACT_OPAQUE_ID_TYPE = symbolFor('react.opaque.id');
       
    63     REACT_DEBUG_TRACING_MODE_TYPE = symbolFor('react.debug_trace_mode');
       
    64     REACT_OFFSCREEN_TYPE = symbolFor('react.offscreen');
       
    65     REACT_LEGACY_HIDDEN_TYPE = symbolFor('react.legacy_hidden');
       
    66   }
       
    67 
    22 
    68   var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
    23 /***/ "./node_modules/react/index.js":
    69   var FAUX_ITERATOR_SYMBOL = '@@iterator';
    24 /*!*************************************!*\
    70   function getIteratorFn(maybeIterable) {
    25   !*** ./node_modules/react/index.js ***!
    71     if (maybeIterable === null || typeof maybeIterable !== 'object') {
    26   \*************************************/
    72       return null;
    27 /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
    73     }
       
    74 
    28 
    75     var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
    29 eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react.development.js */ \"./node_modules/react/cjs/react.development.js\");\n}\n\n\n//# sourceURL=webpack://WordPress/./node_modules/react/index.js?");
    76 
    30 
    77     if (typeof maybeIterator === 'function') {
    31 /***/ })
    78       return maybeIterator;
       
    79     }
       
    80 
    32 
    81     return null;
    33 /******/ 	});
    82   }
    34 /************************************************************************/
    83 
    35 /******/ 	// The module cache
    84   var hasOwnProperty = Object.prototype.hasOwnProperty;
    36 /******/ 	var __webpack_module_cache__ = {};
    85 
    37 /******/ 	
    86   var _assign = function (to, from) {
    38 /******/ 	// The require function
    87     for (var key in from) {
    39 /******/ 	function __webpack_require__(moduleId) {
    88       if (hasOwnProperty.call(from, key)) {
    40 /******/ 		// Check if module is in cache
    89         to[key] = from[key];
    41 /******/ 		var cachedModule = __webpack_module_cache__[moduleId];
    90       }
    42 /******/ 		if (cachedModule !== undefined) {
    91     }
    43 /******/ 			return cachedModule.exports;
    92   };
    44 /******/ 		}
    93 
    45 /******/ 		// Create a new module (and put it into the cache)
    94   var assign = Object.assign || function (target, sources) {
    46 /******/ 		var module = __webpack_module_cache__[moduleId] = {
    95     if (target == null) {
    47 /******/ 			id: moduleId,
    96       throw new TypeError('Object.assign target cannot be null or undefined');
    48 /******/ 			loaded: false,
    97     }
    49 /******/ 			exports: {}
    98 
    50 /******/ 		};
    99     var to = Object(target);
    51 /******/ 	
   100 
    52 /******/ 		// Execute the module function
   101     for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {
    53 /******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
   102       var nextSource = arguments[nextIndex];
    54 /******/ 	
   103 
    55 /******/ 		// Flag the module as loaded
   104       if (nextSource != null) {
    56 /******/ 		module.loaded = true;
   105         _assign(to, Object(nextSource));
    57 /******/ 	
   106       }
    58 /******/ 		// Return the exports of the module
   107     }
    59 /******/ 		return module.exports;
   108 
    60 /******/ 	}
   109     return to;
    61 /******/ 	
   110   };
    62 /************************************************************************/
   111 
    63 /******/ 	/* webpack/runtime/node module decorator */
   112   /**
    64 /******/ 	(() => {
   113    * Keeps track of the current dispatcher.
    65 /******/ 		__webpack_require__.nmd = (module) => {
   114    */
    66 /******/ 			module.paths = [];
   115   var ReactCurrentDispatcher = {
    67 /******/ 			if (!module.children) module.children = [];
   116     /**
    68 /******/ 			return module;
   117      * @internal
    69 /******/ 		};
   118      * @type {ReactComponent}
    70 /******/ 	})();
   119      */
    71 /******/ 	
   120     current: null
    72 /************************************************************************/
   121   };
    73 /******/ 	
   122 
    74 /******/ 	// startup
   123   /**
    75 /******/ 	// Load entry module and return exports
   124    * Keeps track of the current batch's configuration such as how long an update
    76 /******/ 	// This entry module can't be inlined because the eval devtool is used.
   125    * should suspend for if it needs to.
    77 /******/ 	var __webpack_exports__ = __webpack_require__("./node_modules/react/index.js");
   126    */
    78 /******/ 	window.React = __webpack_exports__;
   127   var ReactCurrentBatchConfig = {
    79 /******/ 	
   128     transition: 0
    80 /******/ })()
   129   };
    81 ;
   130 
       
   131   /**
       
   132    * Keeps track of the current owner.
       
   133    *
       
   134    * The current owner is the component who should own any components that are
       
   135    * currently being constructed.
       
   136    */
       
   137   var ReactCurrentOwner = {
       
   138     /**
       
   139      * @internal
       
   140      * @type {ReactComponent}
       
   141      */
       
   142     current: null
       
   143   };
       
   144 
       
   145   var ReactDebugCurrentFrame = {};
       
   146   var currentExtraStackFrame = null;
       
   147   function setExtraStackFrame(stack) {
       
   148     {
       
   149       currentExtraStackFrame = stack;
       
   150     }
       
   151   }
       
   152 
       
   153   {
       
   154     ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {
       
   155       {
       
   156         currentExtraStackFrame = stack;
       
   157       }
       
   158     }; // Stack implementation injected by the current renderer.
       
   159 
       
   160 
       
   161     ReactDebugCurrentFrame.getCurrentStack = null;
       
   162 
       
   163     ReactDebugCurrentFrame.getStackAddendum = function () {
       
   164       var stack = ''; // Add an extra top frame while an element is being validated
       
   165 
       
   166       if (currentExtraStackFrame) {
       
   167         stack += currentExtraStackFrame;
       
   168       } // Delegate to the injected renderer-specific implementation
       
   169 
       
   170 
       
   171       var impl = ReactDebugCurrentFrame.getCurrentStack;
       
   172 
       
   173       if (impl) {
       
   174         stack += impl() || '';
       
   175       }
       
   176 
       
   177       return stack;
       
   178     };
       
   179   }
       
   180 
       
   181   /**
       
   182    * Used by act() to track whether you're inside an act() scope.
       
   183    */
       
   184   var IsSomeRendererActing = {
       
   185     current: false
       
   186   };
       
   187 
       
   188   var ReactSharedInternals = {
       
   189     ReactCurrentDispatcher: ReactCurrentDispatcher,
       
   190     ReactCurrentBatchConfig: ReactCurrentBatchConfig,
       
   191     ReactCurrentOwner: ReactCurrentOwner,
       
   192     IsSomeRendererActing: IsSomeRendererActing,
       
   193     // Used by renderers to avoid bundling object-assign twice in UMD bundles:
       
   194     assign: assign
       
   195   };
       
   196 
       
   197   {
       
   198     ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
       
   199   }
       
   200 
       
   201   // by calls to these methods by a Babel plugin.
       
   202   //
       
   203   // In PROD (or in packages without access to React internals),
       
   204   // they are left as they are instead.
       
   205 
       
   206   function warn(format) {
       
   207     {
       
   208       for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
       
   209         args[_key - 1] = arguments[_key];
       
   210       }
       
   211 
       
   212       printWarning('warn', format, args);
       
   213     }
       
   214   }
       
   215   function error(format) {
       
   216     {
       
   217       for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
       
   218         args[_key2 - 1] = arguments[_key2];
       
   219       }
       
   220 
       
   221       printWarning('error', format, args);
       
   222     }
       
   223   }
       
   224 
       
   225   function printWarning(level, format, args) {
       
   226     // When changing this logic, you might want to also
       
   227     // update consoleWithStackDev.www.js as well.
       
   228     {
       
   229       var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
       
   230       var stack = ReactDebugCurrentFrame.getStackAddendum();
       
   231 
       
   232       if (stack !== '') {
       
   233         format += '%s';
       
   234         args = args.concat([stack]);
       
   235       }
       
   236 
       
   237       var argsWithFormat = args.map(function (item) {
       
   238         return '' + item;
       
   239       }); // Careful: RN currently depends on this prefix
       
   240 
       
   241       argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it
       
   242       // breaks IE9: https://github.com/facebook/react/issues/13610
       
   243       // eslint-disable-next-line react-internal/no-production-logging
       
   244 
       
   245       Function.prototype.apply.call(console[level], console, argsWithFormat);
       
   246     }
       
   247   }
       
   248 
       
   249   var didWarnStateUpdateForUnmountedComponent = {};
       
   250 
       
   251   function warnNoop(publicInstance, callerName) {
       
   252     {
       
   253       var _constructor = publicInstance.constructor;
       
   254       var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';
       
   255       var warningKey = componentName + "." + callerName;
       
   256 
       
   257       if (didWarnStateUpdateForUnmountedComponent[warningKey]) {
       
   258         return;
       
   259       }
       
   260 
       
   261       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);
       
   262 
       
   263       didWarnStateUpdateForUnmountedComponent[warningKey] = true;
       
   264     }
       
   265   }
       
   266   /**
       
   267    * This is the abstract API for an update queue.
       
   268    */
       
   269 
       
   270 
       
   271   var ReactNoopUpdateQueue = {
       
   272     /**
       
   273      * Checks whether or not this composite component is mounted.
       
   274      * @param {ReactClass} publicInstance The instance we want to test.
       
   275      * @return {boolean} True if mounted, false otherwise.
       
   276      * @protected
       
   277      * @final
       
   278      */
       
   279     isMounted: function (publicInstance) {
       
   280       return false;
       
   281     },
       
   282 
       
   283     /**
       
   284      * Forces an update. This should only be invoked when it is known with
       
   285      * certainty that we are **not** in a DOM transaction.
       
   286      *
       
   287      * You may want to call this when you know that some deeper aspect of the
       
   288      * component's state has changed but `setState` was not called.
       
   289      *
       
   290      * This will not invoke `shouldComponentUpdate`, but it will invoke
       
   291      * `componentWillUpdate` and `componentDidUpdate`.
       
   292      *
       
   293      * @param {ReactClass} publicInstance The instance that should rerender.
       
   294      * @param {?function} callback Called after component is updated.
       
   295      * @param {?string} callerName name of the calling function in the public API.
       
   296      * @internal
       
   297      */
       
   298     enqueueForceUpdate: function (publicInstance, callback, callerName) {
       
   299       warnNoop(publicInstance, 'forceUpdate');
       
   300     },
       
   301 
       
   302     /**
       
   303      * Replaces all of the state. Always use this or `setState` to mutate state.
       
   304      * You should treat `this.state` as immutable.
       
   305      *
       
   306      * There is no guarantee that `this.state` will be immediately updated, so
       
   307      * accessing `this.state` after calling this method may return the old value.
       
   308      *
       
   309      * @param {ReactClass} publicInstance The instance that should rerender.
       
   310      * @param {object} completeState Next state.
       
   311      * @param {?function} callback Called after component is updated.
       
   312      * @param {?string} callerName name of the calling function in the public API.
       
   313      * @internal
       
   314      */
       
   315     enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {
       
   316       warnNoop(publicInstance, 'replaceState');
       
   317     },
       
   318 
       
   319     /**
       
   320      * Sets a subset of the state. This only exists because _pendingState is
       
   321      * internal. This provides a merging strategy that is not available to deep
       
   322      * properties which is confusing. TODO: Expose pendingState or don't use it
       
   323      * during the merge.
       
   324      *
       
   325      * @param {ReactClass} publicInstance The instance that should rerender.
       
   326      * @param {object} partialState Next partial state to be merged with state.
       
   327      * @param {?function} callback Called after component is updated.
       
   328      * @param {?string} Name of the calling function in the public API.
       
   329      * @internal
       
   330      */
       
   331     enqueueSetState: function (publicInstance, partialState, callback, callerName) {
       
   332       warnNoop(publicInstance, 'setState');
       
   333     }
       
   334   };
       
   335 
       
   336   var emptyObject = {};
       
   337 
       
   338   {
       
   339     Object.freeze(emptyObject);
       
   340   }
       
   341   /**
       
   342    * Base class helpers for the updating state of a component.
       
   343    */
       
   344 
       
   345 
       
   346   function Component(props, context, updater) {
       
   347     this.props = props;
       
   348     this.context = context; // If a component has string refs, we will assign a different object later.
       
   349 
       
   350     this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the
       
   351     // renderer.
       
   352 
       
   353     this.updater = updater || ReactNoopUpdateQueue;
       
   354   }
       
   355 
       
   356   Component.prototype.isReactComponent = {};
       
   357   /**
       
   358    * Sets a subset of the state. Always use this to mutate
       
   359    * state. You should treat `this.state` as immutable.
       
   360    *
       
   361    * There is no guarantee that `this.state` will be immediately updated, so
       
   362    * accessing `this.state` after calling this method may return the old value.
       
   363    *
       
   364    * There is no guarantee that calls to `setState` will run synchronously,
       
   365    * as they may eventually be batched together.  You can provide an optional
       
   366    * callback that will be executed when the call to setState is actually
       
   367    * completed.
       
   368    *
       
   369    * When a function is provided to setState, it will be called at some point in
       
   370    * the future (not synchronously). It will be called with the up to date
       
   371    * component arguments (state, props, context). These values can be different
       
   372    * from this.* because your function may be called after receiveProps but before
       
   373    * shouldComponentUpdate, and this new state, props, and context will not yet be
       
   374    * assigned to this.
       
   375    *
       
   376    * @param {object|function} partialState Next partial state or function to
       
   377    *        produce next partial state to be merged with current state.
       
   378    * @param {?function} callback Called after state is updated.
       
   379    * @final
       
   380    * @protected
       
   381    */
       
   382 
       
   383   Component.prototype.setState = function (partialState, callback) {
       
   384     if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {
       
   385       {
       
   386         throw Error( "setState(...): takes an object of state variables to update or a function which returns an object of state variables." );
       
   387       }
       
   388     }
       
   389 
       
   390     this.updater.enqueueSetState(this, partialState, callback, 'setState');
       
   391   };
       
   392   /**
       
   393    * Forces an update. This should only be invoked when it is known with
       
   394    * certainty that we are **not** in a DOM transaction.
       
   395    *
       
   396    * You may want to call this when you know that some deeper aspect of the
       
   397    * component's state has changed but `setState` was not called.
       
   398    *
       
   399    * This will not invoke `shouldComponentUpdate`, but it will invoke
       
   400    * `componentWillUpdate` and `componentDidUpdate`.
       
   401    *
       
   402    * @param {?function} callback Called after update is complete.
       
   403    * @final
       
   404    * @protected
       
   405    */
       
   406 
       
   407 
       
   408   Component.prototype.forceUpdate = function (callback) {
       
   409     this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');
       
   410   };
       
   411   /**
       
   412    * Deprecated APIs. These APIs used to exist on classic React classes but since
       
   413    * we would like to deprecate them, we're not going to move them over to this
       
   414    * modern base class. Instead, we define a getter that warns if it's accessed.
       
   415    */
       
   416 
       
   417 
       
   418   {
       
   419     var deprecatedAPIs = {
       
   420       isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
       
   421       replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
       
   422     };
       
   423 
       
   424     var defineDeprecationWarning = function (methodName, info) {
       
   425       Object.defineProperty(Component.prototype, methodName, {
       
   426         get: function () {
       
   427           warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
       
   428 
       
   429           return undefined;
       
   430         }
       
   431       });
       
   432     };
       
   433 
       
   434     for (var fnName in deprecatedAPIs) {
       
   435       if (deprecatedAPIs.hasOwnProperty(fnName)) {
       
   436         defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
       
   437       }
       
   438     }
       
   439   }
       
   440 
       
   441   function ComponentDummy() {}
       
   442 
       
   443   ComponentDummy.prototype = Component.prototype;
       
   444   /**
       
   445    * Convenience component with default shallow equality check for sCU.
       
   446    */
       
   447 
       
   448   function PureComponent(props, context, updater) {
       
   449     this.props = props;
       
   450     this.context = context; // If a component has string refs, we will assign a different object later.
       
   451 
       
   452     this.refs = emptyObject;
       
   453     this.updater = updater || ReactNoopUpdateQueue;
       
   454   }
       
   455 
       
   456   var pureComponentPrototype = PureComponent.prototype = new ComponentDummy();
       
   457   pureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.
       
   458 
       
   459   assign(pureComponentPrototype, Component.prototype);
       
   460 
       
   461   pureComponentPrototype.isPureReactComponent = true;
       
   462 
       
   463   // an immutable object with a single mutable value
       
   464   function createRef() {
       
   465     var refObject = {
       
   466       current: null
       
   467     };
       
   468 
       
   469     {
       
   470       Object.seal(refObject);
       
   471     }
       
   472 
       
   473     return refObject;
       
   474   }
       
   475 
       
   476   function getWrappedName(outerType, innerType, wrapperName) {
       
   477     var functionName = innerType.displayName || innerType.name || '';
       
   478     return outerType.displayName || (functionName !== '' ? wrapperName + "(" + functionName + ")" : wrapperName);
       
   479   }
       
   480 
       
   481   function getContextName(type) {
       
   482     return type.displayName || 'Context';
       
   483   }
       
   484 
       
   485   function getComponentName(type) {
       
   486     if (type == null) {
       
   487       // Host root, text node or just invalid type.
       
   488       return null;
       
   489     }
       
   490 
       
   491     {
       
   492       if (typeof type.tag === 'number') {
       
   493         error('Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
       
   494       }
       
   495     }
       
   496 
       
   497     if (typeof type === 'function') {
       
   498       return type.displayName || type.name || null;
       
   499     }
       
   500 
       
   501     if (typeof type === 'string') {
       
   502       return type;
       
   503     }
       
   504 
       
   505     switch (type) {
       
   506       case exports.Fragment:
       
   507         return 'Fragment';
       
   508 
       
   509       case REACT_PORTAL_TYPE:
       
   510         return 'Portal';
       
   511 
       
   512       case exports.Profiler:
       
   513         return 'Profiler';
       
   514 
       
   515       case exports.StrictMode:
       
   516         return 'StrictMode';
       
   517 
       
   518       case exports.Suspense:
       
   519         return 'Suspense';
       
   520 
       
   521       case REACT_SUSPENSE_LIST_TYPE:
       
   522         return 'SuspenseList';
       
   523     }
       
   524 
       
   525     if (typeof type === 'object') {
       
   526       switch (type.$$typeof) {
       
   527         case REACT_CONTEXT_TYPE:
       
   528           var context = type;
       
   529           return getContextName(context) + '.Consumer';
       
   530 
       
   531         case REACT_PROVIDER_TYPE:
       
   532           var provider = type;
       
   533           return getContextName(provider._context) + '.Provider';
       
   534 
       
   535         case REACT_FORWARD_REF_TYPE:
       
   536           return getWrappedName(type, type.render, 'ForwardRef');
       
   537 
       
   538         case REACT_MEMO_TYPE:
       
   539           return getComponentName(type.type);
       
   540 
       
   541         case REACT_BLOCK_TYPE:
       
   542           return getComponentName(type._render);
       
   543 
       
   544         case REACT_LAZY_TYPE:
       
   545           {
       
   546             var lazyComponent = type;
       
   547             var payload = lazyComponent._payload;
       
   548             var init = lazyComponent._init;
       
   549 
       
   550             try {
       
   551               return getComponentName(init(payload));
       
   552             } catch (x) {
       
   553               return null;
       
   554             }
       
   555           }
       
   556       }
       
   557     }
       
   558 
       
   559     return null;
       
   560   }
       
   561 
       
   562   var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
       
   563   var RESERVED_PROPS = {
       
   564     key: true,
       
   565     ref: true,
       
   566     __self: true,
       
   567     __source: true
       
   568   };
       
   569   var specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;
       
   570 
       
   571   {
       
   572     didWarnAboutStringRefs = {};
       
   573   }
       
   574 
       
   575   function hasValidRef(config) {
       
   576     {
       
   577       if (hasOwnProperty$1.call(config, 'ref')) {
       
   578         var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;
       
   579 
       
   580         if (getter && getter.isReactWarning) {
       
   581           return false;
       
   582         }
       
   583       }
       
   584     }
       
   585 
       
   586     return config.ref !== undefined;
       
   587   }
       
   588 
       
   589   function hasValidKey(config) {
       
   590     {
       
   591       if (hasOwnProperty$1.call(config, 'key')) {
       
   592         var getter = Object.getOwnPropertyDescriptor(config, 'key').get;
       
   593 
       
   594         if (getter && getter.isReactWarning) {
       
   595           return false;
       
   596         }
       
   597       }
       
   598     }
       
   599 
       
   600     return config.key !== undefined;
       
   601   }
       
   602 
       
   603   function defineKeyPropWarningGetter(props, displayName) {
       
   604     var warnAboutAccessingKey = function () {
       
   605       {
       
   606         if (!specialPropKeyWarningShown) {
       
   607           specialPropKeyWarningShown = true;
       
   608 
       
   609           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);
       
   610         }
       
   611       }
       
   612     };
       
   613 
       
   614     warnAboutAccessingKey.isReactWarning = true;
       
   615     Object.defineProperty(props, 'key', {
       
   616       get: warnAboutAccessingKey,
       
   617       configurable: true
       
   618     });
       
   619   }
       
   620 
       
   621   function defineRefPropWarningGetter(props, displayName) {
       
   622     var warnAboutAccessingRef = function () {
       
   623       {
       
   624         if (!specialPropRefWarningShown) {
       
   625           specialPropRefWarningShown = true;
       
   626 
       
   627           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);
       
   628         }
       
   629       }
       
   630     };
       
   631 
       
   632     warnAboutAccessingRef.isReactWarning = true;
       
   633     Object.defineProperty(props, 'ref', {
       
   634       get: warnAboutAccessingRef,
       
   635       configurable: true
       
   636     });
       
   637   }
       
   638 
       
   639   function warnIfStringRefCannotBeAutoConverted(config) {
       
   640     {
       
   641       if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {
       
   642         var componentName = getComponentName(ReactCurrentOwner.current.type);
       
   643 
       
   644         if (!didWarnAboutStringRefs[componentName]) {
       
   645           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);
       
   646 
       
   647           didWarnAboutStringRefs[componentName] = true;
       
   648         }
       
   649       }
       
   650     }
       
   651   }
       
   652   /**
       
   653    * Factory method to create a new React element. This no longer adheres to
       
   654    * the class pattern, so do not use new to call it. Also, instanceof check
       
   655    * will not work. Instead test $$typeof field against Symbol.for('react.element') to check
       
   656    * if something is a React Element.
       
   657    *
       
   658    * @param {*} type
       
   659    * @param {*} props
       
   660    * @param {*} key
       
   661    * @param {string|object} ref
       
   662    * @param {*} owner
       
   663    * @param {*} self A *temporary* helper to detect places where `this` is
       
   664    * different from the `owner` when React.createElement is called, so that we
       
   665    * can warn. We want to get rid of owner and replace string `ref`s with arrow
       
   666    * functions, and as long as `this` and owner are the same, there will be no
       
   667    * change in behavior.
       
   668    * @param {*} source An annotation object (added by a transpiler or otherwise)
       
   669    * indicating filename, line number, and/or other information.
       
   670    * @internal
       
   671    */
       
   672 
       
   673 
       
   674   var ReactElement = function (type, key, ref, self, source, owner, props) {
       
   675     var element = {
       
   676       // This tag allows us to uniquely identify this as a React Element
       
   677       $$typeof: REACT_ELEMENT_TYPE,
       
   678       // Built-in properties that belong on the element
       
   679       type: type,
       
   680       key: key,
       
   681       ref: ref,
       
   682       props: props,
       
   683       // Record the component responsible for creating this element.
       
   684       _owner: owner
       
   685     };
       
   686 
       
   687     {
       
   688       // The validation flag is currently mutative. We put it on
       
   689       // an external backing store so that we can freeze the whole object.
       
   690       // This can be replaced with a WeakMap once they are implemented in
       
   691       // commonly used development environments.
       
   692       element._store = {}; // To make comparing ReactElements easier for testing purposes, we make
       
   693       // the validation flag non-enumerable (where possible, which should
       
   694       // include every environment we run tests in), so the test framework
       
   695       // ignores it.
       
   696 
       
   697       Object.defineProperty(element._store, 'validated', {
       
   698         configurable: false,
       
   699         enumerable: false,
       
   700         writable: true,
       
   701         value: false
       
   702       }); // self and source are DEV only properties.
       
   703 
       
   704       Object.defineProperty(element, '_self', {
       
   705         configurable: false,
       
   706         enumerable: false,
       
   707         writable: false,
       
   708         value: self
       
   709       }); // Two elements created in two different places should be considered
       
   710       // equal for testing purposes and therefore we hide it from enumeration.
       
   711 
       
   712       Object.defineProperty(element, '_source', {
       
   713         configurable: false,
       
   714         enumerable: false,
       
   715         writable: false,
       
   716         value: source
       
   717       });
       
   718 
       
   719       if (Object.freeze) {
       
   720         Object.freeze(element.props);
       
   721         Object.freeze(element);
       
   722       }
       
   723     }
       
   724 
       
   725     return element;
       
   726   };
       
   727   /**
       
   728    * Create and return a new ReactElement of the given type.
       
   729    * See https://reactjs.org/docs/react-api.html#createelement
       
   730    */
       
   731 
       
   732   function createElement(type, config, children) {
       
   733     var propName; // Reserved names are extracted
       
   734 
       
   735     var props = {};
       
   736     var key = null;
       
   737     var ref = null;
       
   738     var self = null;
       
   739     var source = null;
       
   740 
       
   741     if (config != null) {
       
   742       if (hasValidRef(config)) {
       
   743         ref = config.ref;
       
   744 
       
   745         {
       
   746           warnIfStringRefCannotBeAutoConverted(config);
       
   747         }
       
   748       }
       
   749 
       
   750       if (hasValidKey(config)) {
       
   751         key = '' + config.key;
       
   752       }
       
   753 
       
   754       self = config.__self === undefined ? null : config.__self;
       
   755       source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object
       
   756 
       
   757       for (propName in config) {
       
   758         if (hasOwnProperty$1.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
       
   759           props[propName] = config[propName];
       
   760         }
       
   761       }
       
   762     } // Children can be more than one argument, and those are transferred onto
       
   763     // the newly allocated props object.
       
   764 
       
   765 
       
   766     var childrenLength = arguments.length - 2;
       
   767 
       
   768     if (childrenLength === 1) {
       
   769       props.children = children;
       
   770     } else if (childrenLength > 1) {
       
   771       var childArray = Array(childrenLength);
       
   772 
       
   773       for (var i = 0; i < childrenLength; i++) {
       
   774         childArray[i] = arguments[i + 2];
       
   775       }
       
   776 
       
   777       {
       
   778         if (Object.freeze) {
       
   779           Object.freeze(childArray);
       
   780         }
       
   781       }
       
   782 
       
   783       props.children = childArray;
       
   784     } // Resolve default props
       
   785 
       
   786 
       
   787     if (type && type.defaultProps) {
       
   788       var defaultProps = type.defaultProps;
       
   789 
       
   790       for (propName in defaultProps) {
       
   791         if (props[propName] === undefined) {
       
   792           props[propName] = defaultProps[propName];
       
   793         }
       
   794       }
       
   795     }
       
   796 
       
   797     {
       
   798       if (key || ref) {
       
   799         var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;
       
   800 
       
   801         if (key) {
       
   802           defineKeyPropWarningGetter(props, displayName);
       
   803         }
       
   804 
       
   805         if (ref) {
       
   806           defineRefPropWarningGetter(props, displayName);
       
   807         }
       
   808       }
       
   809     }
       
   810 
       
   811     return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);
       
   812   }
       
   813   function cloneAndReplaceKey(oldElement, newKey) {
       
   814     var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);
       
   815     return newElement;
       
   816   }
       
   817   /**
       
   818    * Clone and return a new ReactElement using element as the starting point.
       
   819    * See https://reactjs.org/docs/react-api.html#cloneelement
       
   820    */
       
   821 
       
   822   function cloneElement(element, config, children) {
       
   823     if (!!(element === null || element === undefined)) {
       
   824       {
       
   825         throw Error( "React.cloneElement(...): The argument must be a React element, but you passed " + element + "." );
       
   826       }
       
   827     }
       
   828 
       
   829     var propName; // Original props are copied
       
   830 
       
   831     var props = assign({}, element.props); // Reserved names are extracted
       
   832 
       
   833 
       
   834     var key = element.key;
       
   835     var ref = element.ref; // Self is preserved since the owner is preserved.
       
   836 
       
   837     var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a
       
   838     // transpiler, and the original source is probably a better indicator of the
       
   839     // true owner.
       
   840 
       
   841     var source = element._source; // Owner will be preserved, unless ref is overridden
       
   842 
       
   843     var owner = element._owner;
       
   844 
       
   845     if (config != null) {
       
   846       if (hasValidRef(config)) {
       
   847         // Silently steal the ref from the parent.
       
   848         ref = config.ref;
       
   849         owner = ReactCurrentOwner.current;
       
   850       }
       
   851 
       
   852       if (hasValidKey(config)) {
       
   853         key = '' + config.key;
       
   854       } // Remaining properties override existing props
       
   855 
       
   856 
       
   857       var defaultProps;
       
   858 
       
   859       if (element.type && element.type.defaultProps) {
       
   860         defaultProps = element.type.defaultProps;
       
   861       }
       
   862 
       
   863       for (propName in config) {
       
   864         if (hasOwnProperty$1.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {
       
   865           if (config[propName] === undefined && defaultProps !== undefined) {
       
   866             // Resolve default props
       
   867             props[propName] = defaultProps[propName];
       
   868           } else {
       
   869             props[propName] = config[propName];
       
   870           }
       
   871         }
       
   872       }
       
   873     } // Children can be more than one argument, and those are transferred onto
       
   874     // the newly allocated props object.
       
   875 
       
   876 
       
   877     var childrenLength = arguments.length - 2;
       
   878 
       
   879     if (childrenLength === 1) {
       
   880       props.children = children;
       
   881     } else if (childrenLength > 1) {
       
   882       var childArray = Array(childrenLength);
       
   883 
       
   884       for (var i = 0; i < childrenLength; i++) {
       
   885         childArray[i] = arguments[i + 2];
       
   886       }
       
   887 
       
   888       props.children = childArray;
       
   889     }
       
   890 
       
   891     return ReactElement(element.type, key, ref, self, source, owner, props);
       
   892   }
       
   893   /**
       
   894    * Verifies the object is a ReactElement.
       
   895    * See https://reactjs.org/docs/react-api.html#isvalidelement
       
   896    * @param {?object} object
       
   897    * @return {boolean} True if `object` is a ReactElement.
       
   898    * @final
       
   899    */
       
   900 
       
   901   function isValidElement(object) {
       
   902     return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;
       
   903   }
       
   904 
       
   905   var SEPARATOR = '.';
       
   906   var SUBSEPARATOR = ':';
       
   907   /**
       
   908    * Escape and wrap key so it is safe to use as a reactid
       
   909    *
       
   910    * @param {string} key to be escaped.
       
   911    * @return {string} the escaped key.
       
   912    */
       
   913 
       
   914   function escape(key) {
       
   915     var escapeRegex = /[=:]/g;
       
   916     var escaperLookup = {
       
   917       '=': '=0',
       
   918       ':': '=2'
       
   919     };
       
   920     var escapedString = key.replace(escapeRegex, function (match) {
       
   921       return escaperLookup[match];
       
   922     });
       
   923     return '$' + escapedString;
       
   924   }
       
   925   /**
       
   926    * TODO: Test that a single child and an array with one item have the same key
       
   927    * pattern.
       
   928    */
       
   929 
       
   930 
       
   931   var didWarnAboutMaps = false;
       
   932   var userProvidedKeyEscapeRegex = /\/+/g;
       
   933 
       
   934   function escapeUserProvidedKey(text) {
       
   935     return text.replace(userProvidedKeyEscapeRegex, '$&/');
       
   936   }
       
   937   /**
       
   938    * Generate a key string that identifies a element within a set.
       
   939    *
       
   940    * @param {*} element A element that could contain a manual key.
       
   941    * @param {number} index Index that is used if a manual key is not provided.
       
   942    * @return {string}
       
   943    */
       
   944 
       
   945 
       
   946   function getElementKey(element, index) {
       
   947     // Do some typechecking here since we call this blindly. We want to ensure
       
   948     // that we don't block potential future ES APIs.
       
   949     if (typeof element === 'object' && element !== null && element.key != null) {
       
   950       // Explicit key
       
   951       return escape('' + element.key);
       
   952     } // Implicit key determined by the index in the set
       
   953 
       
   954 
       
   955     return index.toString(36);
       
   956   }
       
   957 
       
   958   function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {
       
   959     var type = typeof children;
       
   960 
       
   961     if (type === 'undefined' || type === 'boolean') {
       
   962       // All of the above are perceived as null.
       
   963       children = null;
       
   964     }
       
   965 
       
   966     var invokeCallback = false;
       
   967 
       
   968     if (children === null) {
       
   969       invokeCallback = true;
       
   970     } else {
       
   971       switch (type) {
       
   972         case 'string':
       
   973         case 'number':
       
   974           invokeCallback = true;
       
   975           break;
       
   976 
       
   977         case 'object':
       
   978           switch (children.$$typeof) {
       
   979             case REACT_ELEMENT_TYPE:
       
   980             case REACT_PORTAL_TYPE:
       
   981               invokeCallback = true;
       
   982           }
       
   983 
       
   984       }
       
   985     }
       
   986 
       
   987     if (invokeCallback) {
       
   988       var _child = children;
       
   989       var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array
       
   990       // so that it's consistent if the number of children grows:
       
   991 
       
   992       var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;
       
   993 
       
   994       if (Array.isArray(mappedChild)) {
       
   995         var escapedChildKey = '';
       
   996 
       
   997         if (childKey != null) {
       
   998           escapedChildKey = escapeUserProvidedKey(childKey) + '/';
       
   999         }
       
  1000 
       
  1001         mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {
       
  1002           return c;
       
  1003         });
       
  1004       } else if (mappedChild != null) {
       
  1005         if (isValidElement(mappedChild)) {
       
  1006           mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as
       
  1007           // traverseAllChildren used to do for objects as children
       
  1008           escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key
       
  1009           mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number
       
  1010           escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);
       
  1011         }
       
  1012 
       
  1013         array.push(mappedChild);
       
  1014       }
       
  1015 
       
  1016       return 1;
       
  1017     }
       
  1018 
       
  1019     var child;
       
  1020     var nextName;
       
  1021     var subtreeCount = 0; // Count of children found in the current subtree.
       
  1022 
       
  1023     var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
       
  1024 
       
  1025     if (Array.isArray(children)) {
       
  1026       for (var i = 0; i < children.length; i++) {
       
  1027         child = children[i];
       
  1028         nextName = nextNamePrefix + getElementKey(child, i);
       
  1029         subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
       
  1030       }
       
  1031     } else {
       
  1032       var iteratorFn = getIteratorFn(children);
       
  1033 
       
  1034       if (typeof iteratorFn === 'function') {
       
  1035         var iterableChildren = children;
       
  1036 
       
  1037         {
       
  1038           // Warn about using Maps as children
       
  1039           if (iteratorFn === iterableChildren.entries) {
       
  1040             if (!didWarnAboutMaps) {
       
  1041               warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');
       
  1042             }
       
  1043 
       
  1044             didWarnAboutMaps = true;
       
  1045           }
       
  1046         }
       
  1047 
       
  1048         var iterator = iteratorFn.call(iterableChildren);
       
  1049         var step;
       
  1050         var ii = 0;
       
  1051 
       
  1052         while (!(step = iterator.next()).done) {
       
  1053           child = step.value;
       
  1054           nextName = nextNamePrefix + getElementKey(child, ii++);
       
  1055           subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);
       
  1056         }
       
  1057       } else if (type === 'object') {
       
  1058         var childrenString = '' + children;
       
  1059 
       
  1060         {
       
  1061           {
       
  1062             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." );
       
  1063           }
       
  1064         }
       
  1065       }
       
  1066     }
       
  1067 
       
  1068     return subtreeCount;
       
  1069   }
       
  1070 
       
  1071   /**
       
  1072    * Maps children that are typically specified as `props.children`.
       
  1073    *
       
  1074    * See https://reactjs.org/docs/react-api.html#reactchildrenmap
       
  1075    *
       
  1076    * The provided mapFunction(child, index) will be called for each
       
  1077    * leaf child.
       
  1078    *
       
  1079    * @param {?*} children Children tree container.
       
  1080    * @param {function(*, int)} func The map function.
       
  1081    * @param {*} context Context for mapFunction.
       
  1082    * @return {object} Object containing the ordered map of results.
       
  1083    */
       
  1084   function mapChildren(children, func, context) {
       
  1085     if (children == null) {
       
  1086       return children;
       
  1087     }
       
  1088 
       
  1089     var result = [];
       
  1090     var count = 0;
       
  1091     mapIntoArray(children, result, '', '', function (child) {
       
  1092       return func.call(context, child, count++);
       
  1093     });
       
  1094     return result;
       
  1095   }
       
  1096   /**
       
  1097    * Count the number of children that are typically specified as
       
  1098    * `props.children`.
       
  1099    *
       
  1100    * See https://reactjs.org/docs/react-api.html#reactchildrencount
       
  1101    *
       
  1102    * @param {?*} children Children tree container.
       
  1103    * @return {number} The number of children.
       
  1104    */
       
  1105 
       
  1106 
       
  1107   function countChildren(children) {
       
  1108     var n = 0;
       
  1109     mapChildren(children, function () {
       
  1110       n++; // Don't return anything
       
  1111     });
       
  1112     return n;
       
  1113   }
       
  1114 
       
  1115   /**
       
  1116    * Iterates through children that are typically specified as `props.children`.
       
  1117    *
       
  1118    * See https://reactjs.org/docs/react-api.html#reactchildrenforeach
       
  1119    *
       
  1120    * The provided forEachFunc(child, index) will be called for each
       
  1121    * leaf child.
       
  1122    *
       
  1123    * @param {?*} children Children tree container.
       
  1124    * @param {function(*, int)} forEachFunc
       
  1125    * @param {*} forEachContext Context for forEachContext.
       
  1126    */
       
  1127   function forEachChildren(children, forEachFunc, forEachContext) {
       
  1128     mapChildren(children, function () {
       
  1129       forEachFunc.apply(this, arguments); // Don't return anything.
       
  1130     }, forEachContext);
       
  1131   }
       
  1132   /**
       
  1133    * Flatten a children object (typically specified as `props.children`) and
       
  1134    * return an array with appropriately re-keyed children.
       
  1135    *
       
  1136    * See https://reactjs.org/docs/react-api.html#reactchildrentoarray
       
  1137    */
       
  1138 
       
  1139 
       
  1140   function toArray(children) {
       
  1141     return mapChildren(children, function (child) {
       
  1142       return child;
       
  1143     }) || [];
       
  1144   }
       
  1145   /**
       
  1146    * Returns the first child in a collection of children and verifies that there
       
  1147    * is only one child in the collection.
       
  1148    *
       
  1149    * See https://reactjs.org/docs/react-api.html#reactchildrenonly
       
  1150    *
       
  1151    * The current implementation of this function assumes that a single child gets
       
  1152    * passed without a wrapper, but the purpose of this helper function is to
       
  1153    * abstract away the particular structure of children.
       
  1154    *
       
  1155    * @param {?object} children Child collection structure.
       
  1156    * @return {ReactElement} The first and only `ReactElement` contained in the
       
  1157    * structure.
       
  1158    */
       
  1159 
       
  1160 
       
  1161   function onlyChild(children) {
       
  1162     if (!isValidElement(children)) {
       
  1163       {
       
  1164         throw Error( "React.Children.only expected to receive a single React element child." );
       
  1165       }
       
  1166     }
       
  1167 
       
  1168     return children;
       
  1169   }
       
  1170 
       
  1171   function createContext(defaultValue, calculateChangedBits) {
       
  1172     if (calculateChangedBits === undefined) {
       
  1173       calculateChangedBits = null;
       
  1174     } else {
       
  1175       {
       
  1176         if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {
       
  1177           error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);
       
  1178         }
       
  1179       }
       
  1180     }
       
  1181 
       
  1182     var context = {
       
  1183       $$typeof: REACT_CONTEXT_TYPE,
       
  1184       _calculateChangedBits: calculateChangedBits,
       
  1185       // As a workaround to support multiple concurrent renderers, we categorize
       
  1186       // some renderers as primary and others as secondary. We only expect
       
  1187       // there to be two concurrent renderers at most: React Native (primary) and
       
  1188       // Fabric (secondary); React DOM (primary) and React ART (secondary).
       
  1189       // Secondary renderers store their context values on separate fields.
       
  1190       _currentValue: defaultValue,
       
  1191       _currentValue2: defaultValue,
       
  1192       // Used to track how many concurrent renderers this context currently
       
  1193       // supports within in a single renderer. Such as parallel server rendering.
       
  1194       _threadCount: 0,
       
  1195       // These are circular
       
  1196       Provider: null,
       
  1197       Consumer: null
       
  1198     };
       
  1199     context.Provider = {
       
  1200       $$typeof: REACT_PROVIDER_TYPE,
       
  1201       _context: context
       
  1202     };
       
  1203     var hasWarnedAboutUsingNestedContextConsumers = false;
       
  1204     var hasWarnedAboutUsingConsumerProvider = false;
       
  1205     var hasWarnedAboutDisplayNameOnConsumer = false;
       
  1206 
       
  1207     {
       
  1208       // A separate object, but proxies back to the original context object for
       
  1209       // backwards compatibility. It has a different $$typeof, so we can properly
       
  1210       // warn for the incorrect usage of Context as a Consumer.
       
  1211       var Consumer = {
       
  1212         $$typeof: REACT_CONTEXT_TYPE,
       
  1213         _context: context,
       
  1214         _calculateChangedBits: context._calculateChangedBits
       
  1215       }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here
       
  1216 
       
  1217       Object.defineProperties(Consumer, {
       
  1218         Provider: {
       
  1219           get: function () {
       
  1220             if (!hasWarnedAboutUsingConsumerProvider) {
       
  1221               hasWarnedAboutUsingConsumerProvider = true;
       
  1222 
       
  1223               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?');
       
  1224             }
       
  1225 
       
  1226             return context.Provider;
       
  1227           },
       
  1228           set: function (_Provider) {
       
  1229             context.Provider = _Provider;
       
  1230           }
       
  1231         },
       
  1232         _currentValue: {
       
  1233           get: function () {
       
  1234             return context._currentValue;
       
  1235           },
       
  1236           set: function (_currentValue) {
       
  1237             context._currentValue = _currentValue;
       
  1238           }
       
  1239         },
       
  1240         _currentValue2: {
       
  1241           get: function () {
       
  1242             return context._currentValue2;
       
  1243           },
       
  1244           set: function (_currentValue2) {
       
  1245             context._currentValue2 = _currentValue2;
       
  1246           }
       
  1247         },
       
  1248         _threadCount: {
       
  1249           get: function () {
       
  1250             return context._threadCount;
       
  1251           },
       
  1252           set: function (_threadCount) {
       
  1253             context._threadCount = _threadCount;
       
  1254           }
       
  1255         },
       
  1256         Consumer: {
       
  1257           get: function () {
       
  1258             if (!hasWarnedAboutUsingNestedContextConsumers) {
       
  1259               hasWarnedAboutUsingNestedContextConsumers = true;
       
  1260 
       
  1261               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?');
       
  1262             }
       
  1263 
       
  1264             return context.Consumer;
       
  1265           }
       
  1266         },
       
  1267         displayName: {
       
  1268           get: function () {
       
  1269             return context.displayName;
       
  1270           },
       
  1271           set: function (displayName) {
       
  1272             if (!hasWarnedAboutDisplayNameOnConsumer) {
       
  1273               warn('Setting `displayName` on Context.Consumer has no effect. ' + "You should set it directly on the context with Context.displayName = '%s'.", displayName);
       
  1274 
       
  1275               hasWarnedAboutDisplayNameOnConsumer = true;
       
  1276             }
       
  1277           }
       
  1278         }
       
  1279       }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty
       
  1280 
       
  1281       context.Consumer = Consumer;
       
  1282     }
       
  1283 
       
  1284     {
       
  1285       context._currentRenderer = null;
       
  1286       context._currentRenderer2 = null;
       
  1287     }
       
  1288 
       
  1289     return context;
       
  1290   }
       
  1291 
       
  1292   var Uninitialized = -1;
       
  1293   var Pending = 0;
       
  1294   var Resolved = 1;
       
  1295   var Rejected = 2;
       
  1296 
       
  1297   function lazyInitializer(payload) {
       
  1298     if (payload._status === Uninitialized) {
       
  1299       var ctor = payload._result;
       
  1300       var thenable = ctor(); // Transition to the next state.
       
  1301 
       
  1302       var pending = payload;
       
  1303       pending._status = Pending;
       
  1304       pending._result = thenable;
       
  1305       thenable.then(function (moduleObject) {
       
  1306         if (payload._status === Pending) {
       
  1307           var defaultExport = moduleObject.default;
       
  1308 
       
  1309           {
       
  1310             if (defaultExport === undefined) {
       
  1311               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.
       
  1312               'const MyComponent = lazy(() => imp' + "ort('./MyComponent'))", moduleObject);
       
  1313             }
       
  1314           } // Transition to the next state.
       
  1315 
       
  1316 
       
  1317           var resolved = payload;
       
  1318           resolved._status = Resolved;
       
  1319           resolved._result = defaultExport;
       
  1320         }
       
  1321       }, function (error) {
       
  1322         if (payload._status === Pending) {
       
  1323           // Transition to the next state.
       
  1324           var rejected = payload;
       
  1325           rejected._status = Rejected;
       
  1326           rejected._result = error;
       
  1327         }
       
  1328       });
       
  1329     }
       
  1330 
       
  1331     if (payload._status === Resolved) {
       
  1332       return payload._result;
       
  1333     } else {
       
  1334       throw payload._result;
       
  1335     }
       
  1336   }
       
  1337 
       
  1338   function lazy(ctor) {
       
  1339     var payload = {
       
  1340       // We use these fields to store the result.
       
  1341       _status: -1,
       
  1342       _result: ctor
       
  1343     };
       
  1344     var lazyType = {
       
  1345       $$typeof: REACT_LAZY_TYPE,
       
  1346       _payload: payload,
       
  1347       _init: lazyInitializer
       
  1348     };
       
  1349 
       
  1350     {
       
  1351       // In production, this would just set it on the object.
       
  1352       var defaultProps;
       
  1353       var propTypes; // $FlowFixMe
       
  1354 
       
  1355       Object.defineProperties(lazyType, {
       
  1356         defaultProps: {
       
  1357           configurable: true,
       
  1358           get: function () {
       
  1359             return defaultProps;
       
  1360           },
       
  1361           set: function (newDefaultProps) {
       
  1362             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.');
       
  1363 
       
  1364             defaultProps = newDefaultProps; // Match production behavior more closely:
       
  1365             // $FlowFixMe
       
  1366 
       
  1367             Object.defineProperty(lazyType, 'defaultProps', {
       
  1368               enumerable: true
       
  1369             });
       
  1370           }
       
  1371         },
       
  1372         propTypes: {
       
  1373           configurable: true,
       
  1374           get: function () {
       
  1375             return propTypes;
       
  1376           },
       
  1377           set: function (newPropTypes) {
       
  1378             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.');
       
  1379 
       
  1380             propTypes = newPropTypes; // Match production behavior more closely:
       
  1381             // $FlowFixMe
       
  1382 
       
  1383             Object.defineProperty(lazyType, 'propTypes', {
       
  1384               enumerable: true
       
  1385             });
       
  1386           }
       
  1387         }
       
  1388       });
       
  1389     }
       
  1390 
       
  1391     return lazyType;
       
  1392   }
       
  1393 
       
  1394   function forwardRef(render) {
       
  1395     {
       
  1396       if (render != null && render.$$typeof === REACT_MEMO_TYPE) {
       
  1397         error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');
       
  1398       } else if (typeof render !== 'function') {
       
  1399         error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);
       
  1400       } else {
       
  1401         if (render.length !== 0 && render.length !== 2) {
       
  1402           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.');
       
  1403         }
       
  1404       }
       
  1405 
       
  1406       if (render != null) {
       
  1407         if (render.defaultProps != null || render.propTypes != null) {
       
  1408           error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');
       
  1409         }
       
  1410       }
       
  1411     }
       
  1412 
       
  1413     var elementType = {
       
  1414       $$typeof: REACT_FORWARD_REF_TYPE,
       
  1415       render: render
       
  1416     };
       
  1417 
       
  1418     {
       
  1419       var ownName;
       
  1420       Object.defineProperty(elementType, 'displayName', {
       
  1421         enumerable: false,
       
  1422         configurable: true,
       
  1423         get: function () {
       
  1424           return ownName;
       
  1425         },
       
  1426         set: function (name) {
       
  1427           ownName = name;
       
  1428 
       
  1429           if (render.displayName == null) {
       
  1430             render.displayName = name;
       
  1431           }
       
  1432         }
       
  1433       });
       
  1434     }
       
  1435 
       
  1436     return elementType;
       
  1437   }
       
  1438 
       
  1439   // Filter certain DOM attributes (e.g. src, href) if their values are empty strings.
       
  1440 
       
  1441   var enableScopeAPI = false; // Experimental Create Event Handle API.
       
  1442 
       
  1443   function isValidElementType(type) {
       
  1444     if (typeof type === 'string' || typeof type === 'function') {
       
  1445       return true;
       
  1446     } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).
       
  1447 
       
  1448 
       
  1449     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 ) {
       
  1450       return true;
       
  1451     }
       
  1452 
       
  1453     if (typeof type === 'object' && type !== null) {
       
  1454       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) {
       
  1455         return true;
       
  1456       }
       
  1457     }
       
  1458 
       
  1459     return false;
       
  1460   }
       
  1461 
       
  1462   function memo(type, compare) {
       
  1463     {
       
  1464       if (!isValidElementType(type)) {
       
  1465         error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);
       
  1466       }
       
  1467     }
       
  1468 
       
  1469     var elementType = {
       
  1470       $$typeof: REACT_MEMO_TYPE,
       
  1471       type: type,
       
  1472       compare: compare === undefined ? null : compare
       
  1473     };
       
  1474 
       
  1475     {
       
  1476       var ownName;
       
  1477       Object.defineProperty(elementType, 'displayName', {
       
  1478         enumerable: false,
       
  1479         configurable: true,
       
  1480         get: function () {
       
  1481           return ownName;
       
  1482         },
       
  1483         set: function (name) {
       
  1484           ownName = name;
       
  1485 
       
  1486           if (type.displayName == null) {
       
  1487             type.displayName = name;
       
  1488           }
       
  1489         }
       
  1490       });
       
  1491     }
       
  1492 
       
  1493     return elementType;
       
  1494   }
       
  1495 
       
  1496   function resolveDispatcher() {
       
  1497     var dispatcher = ReactCurrentDispatcher.current;
       
  1498 
       
  1499     if (!(dispatcher !== null)) {
       
  1500       {
       
  1501         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." );
       
  1502       }
       
  1503     }
       
  1504 
       
  1505     return dispatcher;
       
  1506   }
       
  1507 
       
  1508   function useContext(Context, unstable_observedBits) {
       
  1509     var dispatcher = resolveDispatcher();
       
  1510 
       
  1511     {
       
  1512       if (unstable_observedBits !== undefined) {
       
  1513         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' : '');
       
  1514       } // TODO: add a more generic warning for invalid values.
       
  1515 
       
  1516 
       
  1517       if (Context._context !== undefined) {
       
  1518         var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs
       
  1519         // and nobody should be using this in existing code.
       
  1520 
       
  1521         if (realContext.Consumer === Context) {
       
  1522           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?');
       
  1523         } else if (realContext.Provider === Context) {
       
  1524           error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');
       
  1525         }
       
  1526       }
       
  1527     }
       
  1528 
       
  1529     return dispatcher.useContext(Context, unstable_observedBits);
       
  1530   }
       
  1531   function useState(initialState) {
       
  1532     var dispatcher = resolveDispatcher();
       
  1533     return dispatcher.useState(initialState);
       
  1534   }
       
  1535   function useReducer(reducer, initialArg, init) {
       
  1536     var dispatcher = resolveDispatcher();
       
  1537     return dispatcher.useReducer(reducer, initialArg, init);
       
  1538   }
       
  1539   function useRef(initialValue) {
       
  1540     var dispatcher = resolveDispatcher();
       
  1541     return dispatcher.useRef(initialValue);
       
  1542   }
       
  1543   function useEffect(create, deps) {
       
  1544     var dispatcher = resolveDispatcher();
       
  1545     return dispatcher.useEffect(create, deps);
       
  1546   }
       
  1547   function useLayoutEffect(create, deps) {
       
  1548     var dispatcher = resolveDispatcher();
       
  1549     return dispatcher.useLayoutEffect(create, deps);
       
  1550   }
       
  1551   function useCallback(callback, deps) {
       
  1552     var dispatcher = resolveDispatcher();
       
  1553     return dispatcher.useCallback(callback, deps);
       
  1554   }
       
  1555   function useMemo(create, deps) {
       
  1556     var dispatcher = resolveDispatcher();
       
  1557     return dispatcher.useMemo(create, deps);
       
  1558   }
       
  1559   function useImperativeHandle(ref, create, deps) {
       
  1560     var dispatcher = resolveDispatcher();
       
  1561     return dispatcher.useImperativeHandle(ref, create, deps);
       
  1562   }
       
  1563   function useDebugValue(value, formatterFn) {
       
  1564     {
       
  1565       var dispatcher = resolveDispatcher();
       
  1566       return dispatcher.useDebugValue(value, formatterFn);
       
  1567     }
       
  1568   }
       
  1569 
       
  1570   // Helpers to patch console.logs to avoid logging during side-effect free
       
  1571   // replaying on render function. This currently only patches the object
       
  1572   // lazily which won't cover if the log function was extracted eagerly.
       
  1573   // We could also eagerly patch the method.
       
  1574   var disabledDepth = 0;
       
  1575   var prevLog;
       
  1576   var prevInfo;
       
  1577   var prevWarn;
       
  1578   var prevError;
       
  1579   var prevGroup;
       
  1580   var prevGroupCollapsed;
       
  1581   var prevGroupEnd;
       
  1582 
       
  1583   function disabledLog() {}
       
  1584 
       
  1585   disabledLog.__reactDisabledLog = true;
       
  1586   function disableLogs() {
       
  1587     {
       
  1588       if (disabledDepth === 0) {
       
  1589         /* eslint-disable react-internal/no-production-logging */
       
  1590         prevLog = console.log;
       
  1591         prevInfo = console.info;
       
  1592         prevWarn = console.warn;
       
  1593         prevError = console.error;
       
  1594         prevGroup = console.group;
       
  1595         prevGroupCollapsed = console.groupCollapsed;
       
  1596         prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099
       
  1597 
       
  1598         var props = {
       
  1599           configurable: true,
       
  1600           enumerable: true,
       
  1601           value: disabledLog,
       
  1602           writable: true
       
  1603         }; // $FlowFixMe Flow thinks console is immutable.
       
  1604 
       
  1605         Object.defineProperties(console, {
       
  1606           info: props,
       
  1607           log: props,
       
  1608           warn: props,
       
  1609           error: props,
       
  1610           group: props,
       
  1611           groupCollapsed: props,
       
  1612           groupEnd: props
       
  1613         });
       
  1614         /* eslint-enable react-internal/no-production-logging */
       
  1615       }
       
  1616 
       
  1617       disabledDepth++;
       
  1618     }
       
  1619   }
       
  1620   function reenableLogs() {
       
  1621     {
       
  1622       disabledDepth--;
       
  1623 
       
  1624       if (disabledDepth === 0) {
       
  1625         /* eslint-disable react-internal/no-production-logging */
       
  1626         var props = {
       
  1627           configurable: true,
       
  1628           enumerable: true,
       
  1629           writable: true
       
  1630         }; // $FlowFixMe Flow thinks console is immutable.
       
  1631 
       
  1632         Object.defineProperties(console, {
       
  1633           log: assign({}, props, {
       
  1634             value: prevLog
       
  1635           }),
       
  1636           info: assign({}, props, {
       
  1637             value: prevInfo
       
  1638           }),
       
  1639           warn: assign({}, props, {
       
  1640             value: prevWarn
       
  1641           }),
       
  1642           error: assign({}, props, {
       
  1643             value: prevError
       
  1644           }),
       
  1645           group: assign({}, props, {
       
  1646             value: prevGroup
       
  1647           }),
       
  1648           groupCollapsed: assign({}, props, {
       
  1649             value: prevGroupCollapsed
       
  1650           }),
       
  1651           groupEnd: assign({}, props, {
       
  1652             value: prevGroupEnd
       
  1653           })
       
  1654         });
       
  1655         /* eslint-enable react-internal/no-production-logging */
       
  1656       }
       
  1657 
       
  1658       if (disabledDepth < 0) {
       
  1659         error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');
       
  1660       }
       
  1661     }
       
  1662   }
       
  1663 
       
  1664   var ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;
       
  1665   var prefix;
       
  1666   function describeBuiltInComponentFrame(name, source, ownerFn) {
       
  1667     {
       
  1668       if (prefix === undefined) {
       
  1669         // Extract the VM specific prefix used by each line.
       
  1670         try {
       
  1671           throw Error();
       
  1672         } catch (x) {
       
  1673           var match = x.stack.trim().match(/\n( *(at )?)/);
       
  1674           prefix = match && match[1] || '';
       
  1675         }
       
  1676       } // We use the prefix to ensure our stacks line up with native stack frames.
       
  1677 
       
  1678 
       
  1679       return '\n' + prefix + name;
       
  1680     }
       
  1681   }
       
  1682   var reentry = false;
       
  1683   var componentFrameCache;
       
  1684 
       
  1685   {
       
  1686     var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;
       
  1687     componentFrameCache = new PossiblyWeakMap();
       
  1688   }
       
  1689 
       
  1690   function describeNativeComponentFrame(fn, construct) {
       
  1691     // If something asked for a stack inside a fake render, it should get ignored.
       
  1692     if (!fn || reentry) {
       
  1693       return '';
       
  1694     }
       
  1695 
       
  1696     {
       
  1697       var frame = componentFrameCache.get(fn);
       
  1698 
       
  1699       if (frame !== undefined) {
       
  1700         return frame;
       
  1701       }
       
  1702     }
       
  1703 
       
  1704     var control;
       
  1705     reentry = true;
       
  1706     var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.
       
  1707 
       
  1708     Error.prepareStackTrace = undefined;
       
  1709     var previousDispatcher;
       
  1710 
       
  1711     {
       
  1712       previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function
       
  1713       // for warnings.
       
  1714 
       
  1715       ReactCurrentDispatcher$1.current = null;
       
  1716       disableLogs();
       
  1717     }
       
  1718 
       
  1719     try {
       
  1720       // This should throw.
       
  1721       if (construct) {
       
  1722         // Something should be setting the props in the constructor.
       
  1723         var Fake = function () {
       
  1724           throw Error();
       
  1725         }; // $FlowFixMe
       
  1726 
       
  1727 
       
  1728         Object.defineProperty(Fake.prototype, 'props', {
       
  1729           set: function () {
       
  1730             // We use a throwing setter instead of frozen or non-writable props
       
  1731             // because that won't throw in a non-strict mode function.
       
  1732             throw Error();
       
  1733           }
       
  1734         });
       
  1735 
       
  1736         if (typeof Reflect === 'object' && Reflect.construct) {
       
  1737           // We construct a different control for this case to include any extra
       
  1738           // frames added by the construct call.
       
  1739           try {
       
  1740             Reflect.construct(Fake, []);
       
  1741           } catch (x) {
       
  1742             control = x;
       
  1743           }
       
  1744 
       
  1745           Reflect.construct(fn, [], Fake);
       
  1746         } else {
       
  1747           try {
       
  1748             Fake.call();
       
  1749           } catch (x) {
       
  1750             control = x;
       
  1751           }
       
  1752 
       
  1753           fn.call(Fake.prototype);
       
  1754         }
       
  1755       } else {
       
  1756         try {
       
  1757           throw Error();
       
  1758         } catch (x) {
       
  1759           control = x;
       
  1760         }
       
  1761 
       
  1762         fn();
       
  1763       }
       
  1764     } catch (sample) {
       
  1765       // This is inlined manually because closure doesn't do it for us.
       
  1766       if (sample && control && typeof sample.stack === 'string') {
       
  1767         // This extracts the first frame from the sample that isn't also in the control.
       
  1768         // Skipping one frame that we assume is the frame that calls the two.
       
  1769         var sampleLines = sample.stack.split('\n');
       
  1770         var controlLines = control.stack.split('\n');
       
  1771         var s = sampleLines.length - 1;
       
  1772         var c = controlLines.length - 1;
       
  1773 
       
  1774         while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {
       
  1775           // We expect at least one stack frame to be shared.
       
  1776           // Typically this will be the root most one. However, stack frames may be
       
  1777           // cut off due to maximum stack limits. In this case, one maybe cut off
       
  1778           // earlier than the other. We assume that the sample is longer or the same
       
  1779           // and there for cut off earlier. So we should find the root most frame in
       
  1780           // the sample somewhere in the control.
       
  1781           c--;
       
  1782         }
       
  1783 
       
  1784         for (; s >= 1 && c >= 0; s--, c--) {
       
  1785           // Next we find the first one that isn't the same which should be the
       
  1786           // frame that called our sample function and the control.
       
  1787           if (sampleLines[s] !== controlLines[c]) {
       
  1788             // In V8, the first line is describing the message but other VMs don't.
       
  1789             // If we're about to return the first line, and the control is also on the same
       
  1790             // line, that's a pretty good indicator that our sample threw at same line as
       
  1791             // the control. I.e. before we entered the sample frame. So we ignore this result.
       
  1792             // This can happen if you passed a class to function component, or non-function.
       
  1793             if (s !== 1 || c !== 1) {
       
  1794               do {
       
  1795                 s--;
       
  1796                 c--; // We may still have similar intermediate frames from the construct call.
       
  1797                 // The next one that isn't the same should be our match though.
       
  1798 
       
  1799                 if (c < 0 || sampleLines[s] !== controlLines[c]) {
       
  1800                   // V8 adds a "new" prefix for native classes. Let's remove it to make it prettier.
       
  1801                   var _frame = '\n' + sampleLines[s].replace(' at new ', ' at ');
       
  1802 
       
  1803                   {
       
  1804                     if (typeof fn === 'function') {
       
  1805                       componentFrameCache.set(fn, _frame);
       
  1806                     }
       
  1807                   } // Return the line we found.
       
  1808 
       
  1809 
       
  1810                   return _frame;
       
  1811                 }
       
  1812               } while (s >= 1 && c >= 0);
       
  1813             }
       
  1814 
       
  1815             break;
       
  1816           }
       
  1817         }
       
  1818       }
       
  1819     } finally {
       
  1820       reentry = false;
       
  1821 
       
  1822       {
       
  1823         ReactCurrentDispatcher$1.current = previousDispatcher;
       
  1824         reenableLogs();
       
  1825       }
       
  1826 
       
  1827       Error.prepareStackTrace = previousPrepareStackTrace;
       
  1828     } // Fallback to just using the name if we couldn't make it throw.
       
  1829 
       
  1830 
       
  1831     var name = fn ? fn.displayName || fn.name : '';
       
  1832     var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';
       
  1833 
       
  1834     {
       
  1835       if (typeof fn === 'function') {
       
  1836         componentFrameCache.set(fn, syntheticFrame);
       
  1837       }
       
  1838     }
       
  1839 
       
  1840     return syntheticFrame;
       
  1841   }
       
  1842   function describeFunctionComponentFrame(fn, source, ownerFn) {
       
  1843     {
       
  1844       return describeNativeComponentFrame(fn, false);
       
  1845     }
       
  1846   }
       
  1847 
       
  1848   function shouldConstruct(Component) {
       
  1849     var prototype = Component.prototype;
       
  1850     return !!(prototype && prototype.isReactComponent);
       
  1851   }
       
  1852 
       
  1853   function describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {
       
  1854 
       
  1855     if (type == null) {
       
  1856       return '';
       
  1857     }
       
  1858 
       
  1859     if (typeof type === 'function') {
       
  1860       {
       
  1861         return describeNativeComponentFrame(type, shouldConstruct(type));
       
  1862       }
       
  1863     }
       
  1864 
       
  1865     if (typeof type === 'string') {
       
  1866       return describeBuiltInComponentFrame(type);
       
  1867     }
       
  1868 
       
  1869     switch (type) {
       
  1870       case exports.Suspense:
       
  1871         return describeBuiltInComponentFrame('Suspense');
       
  1872 
       
  1873       case REACT_SUSPENSE_LIST_TYPE:
       
  1874         return describeBuiltInComponentFrame('SuspenseList');
       
  1875     }
       
  1876 
       
  1877     if (typeof type === 'object') {
       
  1878       switch (type.$$typeof) {
       
  1879         case REACT_FORWARD_REF_TYPE:
       
  1880           return describeFunctionComponentFrame(type.render);
       
  1881 
       
  1882         case REACT_MEMO_TYPE:
       
  1883           // Memo may contain any component type so we recursively resolve it.
       
  1884           return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);
       
  1885 
       
  1886         case REACT_BLOCK_TYPE:
       
  1887           return describeFunctionComponentFrame(type._render);
       
  1888 
       
  1889         case REACT_LAZY_TYPE:
       
  1890           {
       
  1891             var lazyComponent = type;
       
  1892             var payload = lazyComponent._payload;
       
  1893             var init = lazyComponent._init;
       
  1894 
       
  1895             try {
       
  1896               // Lazy may contain any component type so we recursively resolve it.
       
  1897               return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);
       
  1898             } catch (x) {}
       
  1899           }
       
  1900       }
       
  1901     }
       
  1902 
       
  1903     return '';
       
  1904   }
       
  1905 
       
  1906   var loggedTypeFailures = {};
       
  1907   var ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
       
  1908 
       
  1909   function setCurrentlyValidatingElement(element) {
       
  1910     {
       
  1911       if (element) {
       
  1912         var owner = element._owner;
       
  1913         var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
       
  1914         ReactDebugCurrentFrame$1.setExtraStackFrame(stack);
       
  1915       } else {
       
  1916         ReactDebugCurrentFrame$1.setExtraStackFrame(null);
       
  1917       }
       
  1918     }
       
  1919   }
       
  1920 
       
  1921   function checkPropTypes(typeSpecs, values, location, componentName, element) {
       
  1922     {
       
  1923       // $FlowFixMe This is okay but Flow doesn't know it.
       
  1924       var has = Function.call.bind(Object.prototype.hasOwnProperty);
       
  1925 
       
  1926       for (var typeSpecName in typeSpecs) {
       
  1927         if (has(typeSpecs, typeSpecName)) {
       
  1928           var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to
       
  1929           // fail the render phase where it didn't fail before. So we log it.
       
  1930           // After these have been cleaned up, we'll let them throw.
       
  1931 
       
  1932           try {
       
  1933             // This is intentionally an invariant that gets caught. It's the same
       
  1934             // behavior as without this statement except with a better message.
       
  1935             if (typeof typeSpecs[typeSpecName] !== 'function') {
       
  1936               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`.');
       
  1937               err.name = 'Invariant Violation';
       
  1938               throw err;
       
  1939             }
       
  1940 
       
  1941             error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');
       
  1942           } catch (ex) {
       
  1943             error$1 = ex;
       
  1944           }
       
  1945 
       
  1946           if (error$1 && !(error$1 instanceof Error)) {
       
  1947             setCurrentlyValidatingElement(element);
       
  1948 
       
  1949             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);
       
  1950 
       
  1951             setCurrentlyValidatingElement(null);
       
  1952           }
       
  1953 
       
  1954           if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {
       
  1955             // Only monitor this failure once because there tends to be a lot of the
       
  1956             // same error.
       
  1957             loggedTypeFailures[error$1.message] = true;
       
  1958             setCurrentlyValidatingElement(element);
       
  1959 
       
  1960             error('Failed %s type: %s', location, error$1.message);
       
  1961 
       
  1962             setCurrentlyValidatingElement(null);
       
  1963           }
       
  1964         }
       
  1965       }
       
  1966     }
       
  1967   }
       
  1968 
       
  1969   function setCurrentlyValidatingElement$1(element) {
       
  1970     {
       
  1971       if (element) {
       
  1972         var owner = element._owner;
       
  1973         var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);
       
  1974         setExtraStackFrame(stack);
       
  1975       } else {
       
  1976         setExtraStackFrame(null);
       
  1977       }
       
  1978     }
       
  1979   }
       
  1980 
       
  1981   var propTypesMisspellWarningShown;
       
  1982 
       
  1983   {
       
  1984     propTypesMisspellWarningShown = false;
       
  1985   }
       
  1986 
       
  1987   function getDeclarationErrorAddendum() {
       
  1988     if (ReactCurrentOwner.current) {
       
  1989       var name = getComponentName(ReactCurrentOwner.current.type);
       
  1990 
       
  1991       if (name) {
       
  1992         return '\n\nCheck the render method of `' + name + '`.';
       
  1993       }
       
  1994     }
       
  1995 
       
  1996     return '';
       
  1997   }
       
  1998 
       
  1999   function getSourceInfoErrorAddendum(source) {
       
  2000     if (source !== undefined) {
       
  2001       var fileName = source.fileName.replace(/^.*[\\\/]/, '');
       
  2002       var lineNumber = source.lineNumber;
       
  2003       return '\n\nCheck your code at ' + fileName + ':' + lineNumber + '.';
       
  2004     }
       
  2005 
       
  2006     return '';
       
  2007   }
       
  2008 
       
  2009   function getSourceInfoErrorAddendumForProps(elementProps) {
       
  2010     if (elementProps !== null && elementProps !== undefined) {
       
  2011       return getSourceInfoErrorAddendum(elementProps.__source);
       
  2012     }
       
  2013 
       
  2014     return '';
       
  2015   }
       
  2016   /**
       
  2017    * Warn if there's no key explicitly set on dynamic arrays of children or
       
  2018    * object keys are not valid. This allows us to keep track of children between
       
  2019    * updates.
       
  2020    */
       
  2021 
       
  2022 
       
  2023   var ownerHasKeyUseWarning = {};
       
  2024 
       
  2025   function getCurrentComponentErrorInfo(parentType) {
       
  2026     var info = getDeclarationErrorAddendum();
       
  2027 
       
  2028     if (!info) {
       
  2029       var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;
       
  2030 
       
  2031       if (parentName) {
       
  2032         info = "\n\nCheck the top-level render call using <" + parentName + ">.";
       
  2033       }
       
  2034     }
       
  2035 
       
  2036     return info;
       
  2037   }
       
  2038   /**
       
  2039    * Warn if the element doesn't have an explicit key assigned to it.
       
  2040    * This element is in an array. The array could grow and shrink or be
       
  2041    * reordered. All children that haven't already been validated are required to
       
  2042    * have a "key" property assigned to it. Error statuses are cached so a warning
       
  2043    * will only be shown once.
       
  2044    *
       
  2045    * @internal
       
  2046    * @param {ReactElement} element Element that requires a key.
       
  2047    * @param {*} parentType element's parent's type.
       
  2048    */
       
  2049 
       
  2050 
       
  2051   function validateExplicitKey(element, parentType) {
       
  2052     if (!element._store || element._store.validated || element.key != null) {
       
  2053       return;
       
  2054     }
       
  2055 
       
  2056     element._store.validated = true;
       
  2057     var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);
       
  2058 
       
  2059     if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {
       
  2060       return;
       
  2061     }
       
  2062 
       
  2063     ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a
       
  2064     // property, it may be the creator of the child that's responsible for
       
  2065     // assigning it a key.
       
  2066 
       
  2067     var childOwner = '';
       
  2068 
       
  2069     if (element && element._owner && element._owner !== ReactCurrentOwner.current) {
       
  2070       // Give the component that originally created this child.
       
  2071       childOwner = " It was passed a child from " + getComponentName(element._owner.type) + ".";
       
  2072     }
       
  2073 
       
  2074     {
       
  2075       setCurrentlyValidatingElement$1(element);
       
  2076 
       
  2077       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);
       
  2078 
       
  2079       setCurrentlyValidatingElement$1(null);
       
  2080     }
       
  2081   }
       
  2082   /**
       
  2083    * Ensure that every element either is passed in a static location, in an
       
  2084    * array with an explicit keys property defined, or in an object literal
       
  2085    * with valid key property.
       
  2086    *
       
  2087    * @internal
       
  2088    * @param {ReactNode} node Statically passed child of any type.
       
  2089    * @param {*} parentType node's parent's type.
       
  2090    */
       
  2091 
       
  2092 
       
  2093   function validateChildKeys(node, parentType) {
       
  2094     if (typeof node !== 'object') {
       
  2095       return;
       
  2096     }
       
  2097 
       
  2098     if (Array.isArray(node)) {
       
  2099       for (var i = 0; i < node.length; i++) {
       
  2100         var child = node[i];
       
  2101 
       
  2102         if (isValidElement(child)) {
       
  2103           validateExplicitKey(child, parentType);
       
  2104         }
       
  2105       }
       
  2106     } else if (isValidElement(node)) {
       
  2107       // This element was passed in a valid location.
       
  2108       if (node._store) {
       
  2109         node._store.validated = true;
       
  2110       }
       
  2111     } else if (node) {
       
  2112       var iteratorFn = getIteratorFn(node);
       
  2113 
       
  2114       if (typeof iteratorFn === 'function') {
       
  2115         // Entry iterators used to provide implicit keys,
       
  2116         // but now we print a separate warning for them later.
       
  2117         if (iteratorFn !== node.entries) {
       
  2118           var iterator = iteratorFn.call(node);
       
  2119           var step;
       
  2120 
       
  2121           while (!(step = iterator.next()).done) {
       
  2122             if (isValidElement(step.value)) {
       
  2123               validateExplicitKey(step.value, parentType);
       
  2124             }
       
  2125           }
       
  2126         }
       
  2127       }
       
  2128     }
       
  2129   }
       
  2130   /**
       
  2131    * Given an element, validate that its props follow the propTypes definition,
       
  2132    * provided by the type.
       
  2133    *
       
  2134    * @param {ReactElement} element
       
  2135    */
       
  2136 
       
  2137 
       
  2138   function validatePropTypes(element) {
       
  2139     {
       
  2140       var type = element.type;
       
  2141 
       
  2142       if (type === null || type === undefined || typeof type === 'string') {
       
  2143         return;
       
  2144       }
       
  2145 
       
  2146       var propTypes;
       
  2147 
       
  2148       if (typeof type === 'function') {
       
  2149         propTypes = type.propTypes;
       
  2150       } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.
       
  2151       // Inner props are checked in the reconciler.
       
  2152       type.$$typeof === REACT_MEMO_TYPE)) {
       
  2153         propTypes = type.propTypes;
       
  2154       } else {
       
  2155         return;
       
  2156       }
       
  2157 
       
  2158       if (propTypes) {
       
  2159         // Intentionally inside to avoid triggering lazy initializers:
       
  2160         var name = getComponentName(type);
       
  2161         checkPropTypes(propTypes, element.props, 'prop', name, element);
       
  2162       } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {
       
  2163         propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:
       
  2164 
       
  2165         var _name = getComponentName(type);
       
  2166 
       
  2167         error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');
       
  2168       }
       
  2169 
       
  2170       if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {
       
  2171         error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');
       
  2172       }
       
  2173     }
       
  2174   }
       
  2175   /**
       
  2176    * Given a fragment, validate that it can only be provided with fragment props
       
  2177    * @param {ReactElement} fragment
       
  2178    */
       
  2179 
       
  2180 
       
  2181   function validateFragmentProps(fragment) {
       
  2182     {
       
  2183       var keys = Object.keys(fragment.props);
       
  2184 
       
  2185       for (var i = 0; i < keys.length; i++) {
       
  2186         var key = keys[i];
       
  2187 
       
  2188         if (key !== 'children' && key !== 'key') {
       
  2189           setCurrentlyValidatingElement$1(fragment);
       
  2190 
       
  2191           error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);
       
  2192 
       
  2193           setCurrentlyValidatingElement$1(null);
       
  2194           break;
       
  2195         }
       
  2196       }
       
  2197 
       
  2198       if (fragment.ref !== null) {
       
  2199         setCurrentlyValidatingElement$1(fragment);
       
  2200 
       
  2201         error('Invalid attribute `ref` supplied to `React.Fragment`.');
       
  2202 
       
  2203         setCurrentlyValidatingElement$1(null);
       
  2204       }
       
  2205     }
       
  2206   }
       
  2207   function createElementWithValidation(type, props, children) {
       
  2208     var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to
       
  2209     // succeed and there will likely be errors in render.
       
  2210 
       
  2211     if (!validType) {
       
  2212       var info = '';
       
  2213 
       
  2214       if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
       
  2215         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.";
       
  2216       }
       
  2217 
       
  2218       var sourceInfo = getSourceInfoErrorAddendumForProps(props);
       
  2219 
       
  2220       if (sourceInfo) {
       
  2221         info += sourceInfo;
       
  2222       } else {
       
  2223         info += getDeclarationErrorAddendum();
       
  2224       }
       
  2225 
       
  2226       var typeString;
       
  2227 
       
  2228       if (type === null) {
       
  2229         typeString = 'null';
       
  2230       } else if (Array.isArray(type)) {
       
  2231         typeString = 'array';
       
  2232       } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {
       
  2233         typeString = "<" + (getComponentName(type.type) || 'Unknown') + " />";
       
  2234         info = ' Did you accidentally export a JSX literal instead of a component?';
       
  2235       } else {
       
  2236         typeString = typeof type;
       
  2237       }
       
  2238 
       
  2239       {
       
  2240         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);
       
  2241       }
       
  2242     }
       
  2243 
       
  2244     var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.
       
  2245     // TODO: Drop this when these are no longer allowed as the type argument.
       
  2246 
       
  2247     if (element == null) {
       
  2248       return element;
       
  2249     } // Skip key warning if the type isn't valid since our key validation logic
       
  2250     // doesn't expect a non-string/function type and can throw confusing errors.
       
  2251     // We don't want exception behavior to differ between dev and prod.
       
  2252     // (Rendering will throw with a helpful message and as soon as the type is
       
  2253     // fixed, the key warnings will appear.)
       
  2254 
       
  2255 
       
  2256     if (validType) {
       
  2257       for (var i = 2; i < arguments.length; i++) {
       
  2258         validateChildKeys(arguments[i], type);
       
  2259       }
       
  2260     }
       
  2261 
       
  2262     if (type === exports.Fragment) {
       
  2263       validateFragmentProps(element);
       
  2264     } else {
       
  2265       validatePropTypes(element);
       
  2266     }
       
  2267 
       
  2268     return element;
       
  2269   }
       
  2270   var didWarnAboutDeprecatedCreateFactory = false;
       
  2271   function createFactoryWithValidation(type) {
       
  2272     var validatedFactory = createElementWithValidation.bind(null, type);
       
  2273     validatedFactory.type = type;
       
  2274 
       
  2275     {
       
  2276       if (!didWarnAboutDeprecatedCreateFactory) {
       
  2277         didWarnAboutDeprecatedCreateFactory = true;
       
  2278 
       
  2279         warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');
       
  2280       } // Legacy hook: remove it
       
  2281 
       
  2282 
       
  2283       Object.defineProperty(validatedFactory, 'type', {
       
  2284         enumerable: false,
       
  2285         get: function () {
       
  2286           warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
       
  2287 
       
  2288           Object.defineProperty(this, 'type', {
       
  2289             value: type
       
  2290           });
       
  2291           return type;
       
  2292         }
       
  2293       });
       
  2294     }
       
  2295 
       
  2296     return validatedFactory;
       
  2297   }
       
  2298   function cloneElementWithValidation(element, props, children) {
       
  2299     var newElement = cloneElement.apply(this, arguments);
       
  2300 
       
  2301     for (var i = 2; i < arguments.length; i++) {
       
  2302       validateChildKeys(arguments[i], newElement.type);
       
  2303     }
       
  2304 
       
  2305     validatePropTypes(newElement);
       
  2306     return newElement;
       
  2307   }
       
  2308 
       
  2309   var enableSchedulerDebugging = false;
       
  2310   var enableProfiling = false;
       
  2311 
       
  2312   var requestHostCallback;
       
  2313   var requestHostTimeout;
       
  2314   var cancelHostTimeout;
       
  2315   var shouldYieldToHost;
       
  2316   var requestPaint;
       
  2317   var getCurrentTime;
       
  2318   var forceFrameRate;
       
  2319   var hasPerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';
       
  2320 
       
  2321   if (hasPerformanceNow) {
       
  2322     var localPerformance = performance;
       
  2323 
       
  2324     getCurrentTime = function () {
       
  2325       return localPerformance.now();
       
  2326     };
       
  2327   } else {
       
  2328     var localDate = Date;
       
  2329     var initialTime = localDate.now();
       
  2330 
       
  2331     getCurrentTime = function () {
       
  2332       return localDate.now() - initialTime;
       
  2333     };
       
  2334   }
       
  2335 
       
  2336   if ( // If Scheduler runs in a non-DOM environment, it falls back to a naive
       
  2337   // implementation using setTimeout.
       
  2338   typeof window === 'undefined' || // Check if MessageChannel is supported, too.
       
  2339   typeof MessageChannel !== 'function') {
       
  2340     // If this accidentally gets imported in a non-browser environment, e.g. JavaScriptCore,
       
  2341     // fallback to a naive implementation.
       
  2342     var _callback = null;
       
  2343     var _timeoutID = null;
       
  2344 
       
  2345     var _flushCallback = function () {
       
  2346       if (_callback !== null) {
       
  2347         try {
       
  2348           var currentTime = getCurrentTime();
       
  2349           var hasRemainingTime = true;
       
  2350 
       
  2351           _callback(hasRemainingTime, currentTime);
       
  2352 
       
  2353           _callback = null;
       
  2354         } catch (e) {
       
  2355           setTimeout(_flushCallback, 0);
       
  2356           throw e;
       
  2357         }
       
  2358       }
       
  2359     };
       
  2360 
       
  2361     requestHostCallback = function (cb) {
       
  2362       if (_callback !== null) {
       
  2363         // Protect against re-entrancy.
       
  2364         setTimeout(requestHostCallback, 0, cb);
       
  2365       } else {
       
  2366         _callback = cb;
       
  2367         setTimeout(_flushCallback, 0);
       
  2368       }
       
  2369     };
       
  2370 
       
  2371     requestHostTimeout = function (cb, ms) {
       
  2372       _timeoutID = setTimeout(cb, ms);
       
  2373     };
       
  2374 
       
  2375     cancelHostTimeout = function () {
       
  2376       clearTimeout(_timeoutID);
       
  2377     };
       
  2378 
       
  2379     shouldYieldToHost = function () {
       
  2380       return false;
       
  2381     };
       
  2382 
       
  2383     requestPaint = forceFrameRate = function () {};
       
  2384   } else {
       
  2385     // Capture local references to native APIs, in case a polyfill overrides them.
       
  2386     var _setTimeout = window.setTimeout;
       
  2387     var _clearTimeout = window.clearTimeout;
       
  2388 
       
  2389     if (typeof console !== 'undefined') {
       
  2390       // TODO: Scheduler no longer requires these methods to be polyfilled. But
       
  2391       // maybe we want to continue warning if they don't exist, to preserve the
       
  2392       // option to rely on it in the future?
       
  2393       var requestAnimationFrame = window.requestAnimationFrame;
       
  2394       var cancelAnimationFrame = window.cancelAnimationFrame;
       
  2395 
       
  2396       if (typeof requestAnimationFrame !== 'function') {
       
  2397         // Using console['error'] to evade Babel and ESLint
       
  2398         console['error']("This browser doesn't support requestAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');
       
  2399       }
       
  2400 
       
  2401       if (typeof cancelAnimationFrame !== 'function') {
       
  2402         // Using console['error'] to evade Babel and ESLint
       
  2403         console['error']("This browser doesn't support cancelAnimationFrame. " + 'Make sure that you load a ' + 'polyfill in older browsers. https://reactjs.org/link/react-polyfills');
       
  2404       }
       
  2405     }
       
  2406 
       
  2407     var isMessageLoopRunning = false;
       
  2408     var scheduledHostCallback = null;
       
  2409     var taskTimeoutID = -1; // Scheduler periodically yields in case there is other work on the main
       
  2410     // thread, like user events. By default, it yields multiple times per frame.
       
  2411     // It does not attempt to align with frame boundaries, since most tasks don't
       
  2412     // need to be frame aligned; for those that do, use requestAnimationFrame.
       
  2413 
       
  2414     var yieldInterval = 5;
       
  2415     var deadline = 0; // TODO: Make this configurable
       
  2416 
       
  2417     {
       
  2418       // `isInputPending` is not available. Since we have no way of knowing if
       
  2419       // there's pending input, always yield at the end of the frame.
       
  2420       shouldYieldToHost = function () {
       
  2421         return getCurrentTime() >= deadline;
       
  2422       }; // Since we yield every frame regardless, `requestPaint` has no effect.
       
  2423 
       
  2424 
       
  2425       requestPaint = function () {};
       
  2426     }
       
  2427 
       
  2428     forceFrameRate = function (fps) {
       
  2429       if (fps < 0 || fps > 125) {
       
  2430         // Using console['error'] to evade Babel and ESLint
       
  2431         console['error']('forceFrameRate takes a positive int between 0 and 125, ' + 'forcing frame rates higher than 125 fps is not supported');
       
  2432         return;
       
  2433       }
       
  2434 
       
  2435       if (fps > 0) {
       
  2436         yieldInterval = Math.floor(1000 / fps);
       
  2437       } else {
       
  2438         // reset the framerate
       
  2439         yieldInterval = 5;
       
  2440       }
       
  2441     };
       
  2442 
       
  2443     var performWorkUntilDeadline = function () {
       
  2444       if (scheduledHostCallback !== null) {
       
  2445         var currentTime = getCurrentTime(); // Yield after `yieldInterval` ms, regardless of where we are in the vsync
       
  2446         // cycle. This means there's always time remaining at the beginning of
       
  2447         // the message event.
       
  2448 
       
  2449         deadline = currentTime + yieldInterval;
       
  2450         var hasTimeRemaining = true;
       
  2451 
       
  2452         try {
       
  2453           var hasMoreWork = scheduledHostCallback(hasTimeRemaining, currentTime);
       
  2454 
       
  2455           if (!hasMoreWork) {
       
  2456             isMessageLoopRunning = false;
       
  2457             scheduledHostCallback = null;
       
  2458           } else {
       
  2459             // If there's more work, schedule the next message event at the end
       
  2460             // of the preceding one.
       
  2461             port.postMessage(null);
       
  2462           }
       
  2463         } catch (error) {
       
  2464           // If a scheduler task throws, exit the current browser task so the
       
  2465           // error can be observed.
       
  2466           port.postMessage(null);
       
  2467           throw error;
       
  2468         }
       
  2469       } else {
       
  2470         isMessageLoopRunning = false;
       
  2471       } // Yielding to the browser will give it a chance to paint, so we can
       
  2472     };
       
  2473 
       
  2474     var channel = new MessageChannel();
       
  2475     var port = channel.port2;
       
  2476     channel.port1.onmessage = performWorkUntilDeadline;
       
  2477 
       
  2478     requestHostCallback = function (callback) {
       
  2479       scheduledHostCallback = callback;
       
  2480 
       
  2481       if (!isMessageLoopRunning) {
       
  2482         isMessageLoopRunning = true;
       
  2483         port.postMessage(null);
       
  2484       }
       
  2485     };
       
  2486 
       
  2487     requestHostTimeout = function (callback, ms) {
       
  2488       taskTimeoutID = _setTimeout(function () {
       
  2489         callback(getCurrentTime());
       
  2490       }, ms);
       
  2491     };
       
  2492 
       
  2493     cancelHostTimeout = function () {
       
  2494       _clearTimeout(taskTimeoutID);
       
  2495 
       
  2496       taskTimeoutID = -1;
       
  2497     };
       
  2498   }
       
  2499 
       
  2500   function push(heap, node) {
       
  2501     var index = heap.length;
       
  2502     heap.push(node);
       
  2503     siftUp(heap, node, index);
       
  2504   }
       
  2505   function peek(heap) {
       
  2506     var first = heap[0];
       
  2507     return first === undefined ? null : first;
       
  2508   }
       
  2509   function pop(heap) {
       
  2510     var first = heap[0];
       
  2511 
       
  2512     if (first !== undefined) {
       
  2513       var last = heap.pop();
       
  2514 
       
  2515       if (last !== first) {
       
  2516         heap[0] = last;
       
  2517         siftDown(heap, last, 0);
       
  2518       }
       
  2519 
       
  2520       return first;
       
  2521     } else {
       
  2522       return null;
       
  2523     }
       
  2524   }
       
  2525 
       
  2526   function siftUp(heap, node, i) {
       
  2527     var index = i;
       
  2528 
       
  2529     while (true) {
       
  2530       var parentIndex = index - 1 >>> 1;
       
  2531       var parent = heap[parentIndex];
       
  2532 
       
  2533       if (parent !== undefined && compare(parent, node) > 0) {
       
  2534         // The parent is larger. Swap positions.
       
  2535         heap[parentIndex] = node;
       
  2536         heap[index] = parent;
       
  2537         index = parentIndex;
       
  2538       } else {
       
  2539         // The parent is smaller. Exit.
       
  2540         return;
       
  2541       }
       
  2542     }
       
  2543   }
       
  2544 
       
  2545   function siftDown(heap, node, i) {
       
  2546     var index = i;
       
  2547     var length = heap.length;
       
  2548 
       
  2549     while (index < length) {
       
  2550       var leftIndex = (index + 1) * 2 - 1;
       
  2551       var left = heap[leftIndex];
       
  2552       var rightIndex = leftIndex + 1;
       
  2553       var right = heap[rightIndex]; // If the left or right node is smaller, swap with the smaller of those.
       
  2554 
       
  2555       if (left !== undefined && compare(left, node) < 0) {
       
  2556         if (right !== undefined && compare(right, left) < 0) {
       
  2557           heap[index] = right;
       
  2558           heap[rightIndex] = node;
       
  2559           index = rightIndex;
       
  2560         } else {
       
  2561           heap[index] = left;
       
  2562           heap[leftIndex] = node;
       
  2563           index = leftIndex;
       
  2564         }
       
  2565       } else if (right !== undefined && compare(right, node) < 0) {
       
  2566         heap[index] = right;
       
  2567         heap[rightIndex] = node;
       
  2568         index = rightIndex;
       
  2569       } else {
       
  2570         // Neither child is smaller. Exit.
       
  2571         return;
       
  2572       }
       
  2573     }
       
  2574   }
       
  2575 
       
  2576   function compare(a, b) {
       
  2577     // Compare sort index first, then task id.
       
  2578     var diff = a.sortIndex - b.sortIndex;
       
  2579     return diff !== 0 ? diff : a.id - b.id;
       
  2580   }
       
  2581 
       
  2582   // TODO: Use symbols?
       
  2583   var ImmediatePriority = 1;
       
  2584   var UserBlockingPriority = 2;
       
  2585   var NormalPriority = 3;
       
  2586   var LowPriority = 4;
       
  2587   var IdlePriority = 5;
       
  2588 
       
  2589   function markTaskErrored(task, ms) {
       
  2590   }
       
  2591 
       
  2592   /* eslint-disable no-var */
       
  2593   // Math.pow(2, 30) - 1
       
  2594   // 0b111111111111111111111111111111
       
  2595 
       
  2596   var maxSigned31BitInt = 1073741823; // Times out immediately
       
  2597 
       
  2598   var IMMEDIATE_PRIORITY_TIMEOUT = -1; // Eventually times out
       
  2599 
       
  2600   var USER_BLOCKING_PRIORITY_TIMEOUT = 250;
       
  2601   var NORMAL_PRIORITY_TIMEOUT = 5000;
       
  2602   var LOW_PRIORITY_TIMEOUT = 10000; // Never times out
       
  2603 
       
  2604   var IDLE_PRIORITY_TIMEOUT = maxSigned31BitInt; // Tasks are stored on a min heap
       
  2605 
       
  2606   var taskQueue = [];
       
  2607   var timerQueue = []; // Incrementing id counter. Used to maintain insertion order.
       
  2608 
       
  2609   var taskIdCounter = 1; // Pausing the scheduler is useful for debugging.
       
  2610   var currentTask = null;
       
  2611   var currentPriorityLevel = NormalPriority; // This is set while performing work, to prevent re-entrancy.
       
  2612 
       
  2613   var isPerformingWork = false;
       
  2614   var isHostCallbackScheduled = false;
       
  2615   var isHostTimeoutScheduled = false;
       
  2616 
       
  2617   function advanceTimers(currentTime) {
       
  2618     // Check for tasks that are no longer delayed and add them to the queue.
       
  2619     var timer = peek(timerQueue);
       
  2620 
       
  2621     while (timer !== null) {
       
  2622       if (timer.callback === null) {
       
  2623         // Timer was cancelled.
       
  2624         pop(timerQueue);
       
  2625       } else if (timer.startTime <= currentTime) {
       
  2626         // Timer fired. Transfer to the task queue.
       
  2627         pop(timerQueue);
       
  2628         timer.sortIndex = timer.expirationTime;
       
  2629         push(taskQueue, timer);
       
  2630       } else {
       
  2631         // Remaining timers are pending.
       
  2632         return;
       
  2633       }
       
  2634 
       
  2635       timer = peek(timerQueue);
       
  2636     }
       
  2637   }
       
  2638 
       
  2639   function handleTimeout(currentTime) {
       
  2640     isHostTimeoutScheduled = false;
       
  2641     advanceTimers(currentTime);
       
  2642 
       
  2643     if (!isHostCallbackScheduled) {
       
  2644       if (peek(taskQueue) !== null) {
       
  2645         isHostCallbackScheduled = true;
       
  2646         requestHostCallback(flushWork);
       
  2647       } else {
       
  2648         var firstTimer = peek(timerQueue);
       
  2649 
       
  2650         if (firstTimer !== null) {
       
  2651           requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
       
  2652         }
       
  2653       }
       
  2654     }
       
  2655   }
       
  2656 
       
  2657   function flushWork(hasTimeRemaining, initialTime) {
       
  2658 
       
  2659 
       
  2660     isHostCallbackScheduled = false;
       
  2661 
       
  2662     if (isHostTimeoutScheduled) {
       
  2663       // We scheduled a timeout but it's no longer needed. Cancel it.
       
  2664       isHostTimeoutScheduled = false;
       
  2665       cancelHostTimeout();
       
  2666     }
       
  2667 
       
  2668     isPerformingWork = true;
       
  2669     var previousPriorityLevel = currentPriorityLevel;
       
  2670 
       
  2671     try {
       
  2672       if (enableProfiling) {
       
  2673         try {
       
  2674           return workLoop(hasTimeRemaining, initialTime);
       
  2675         } catch (error) {
       
  2676           if (currentTask !== null) {
       
  2677             var currentTime = getCurrentTime();
       
  2678             markTaskErrored(currentTask, currentTime);
       
  2679             currentTask.isQueued = false;
       
  2680           }
       
  2681 
       
  2682           throw error;
       
  2683         }
       
  2684       } else {
       
  2685         // No catch in prod code path.
       
  2686         return workLoop(hasTimeRemaining, initialTime);
       
  2687       }
       
  2688     } finally {
       
  2689       currentTask = null;
       
  2690       currentPriorityLevel = previousPriorityLevel;
       
  2691       isPerformingWork = false;
       
  2692     }
       
  2693   }
       
  2694 
       
  2695   function workLoop(hasTimeRemaining, initialTime) {
       
  2696     var currentTime = initialTime;
       
  2697     advanceTimers(currentTime);
       
  2698     currentTask = peek(taskQueue);
       
  2699 
       
  2700     while (currentTask !== null && !(enableSchedulerDebugging )) {
       
  2701       if (currentTask.expirationTime > currentTime && (!hasTimeRemaining || shouldYieldToHost())) {
       
  2702         // This currentTask hasn't expired, and we've reached the deadline.
       
  2703         break;
       
  2704       }
       
  2705 
       
  2706       var callback = currentTask.callback;
       
  2707 
       
  2708       if (typeof callback === 'function') {
       
  2709         currentTask.callback = null;
       
  2710         currentPriorityLevel = currentTask.priorityLevel;
       
  2711         var didUserCallbackTimeout = currentTask.expirationTime <= currentTime;
       
  2712 
       
  2713         var continuationCallback = callback(didUserCallbackTimeout);
       
  2714         currentTime = getCurrentTime();
       
  2715 
       
  2716         if (typeof continuationCallback === 'function') {
       
  2717           currentTask.callback = continuationCallback;
       
  2718         } else {
       
  2719 
       
  2720           if (currentTask === peek(taskQueue)) {
       
  2721             pop(taskQueue);
       
  2722           }
       
  2723         }
       
  2724 
       
  2725         advanceTimers(currentTime);
       
  2726       } else {
       
  2727         pop(taskQueue);
       
  2728       }
       
  2729 
       
  2730       currentTask = peek(taskQueue);
       
  2731     } // Return whether there's additional work
       
  2732 
       
  2733 
       
  2734     if (currentTask !== null) {
       
  2735       return true;
       
  2736     } else {
       
  2737       var firstTimer = peek(timerQueue);
       
  2738 
       
  2739       if (firstTimer !== null) {
       
  2740         requestHostTimeout(handleTimeout, firstTimer.startTime - currentTime);
       
  2741       }
       
  2742 
       
  2743       return false;
       
  2744     }
       
  2745   }
       
  2746 
       
  2747   function unstable_runWithPriority(priorityLevel, eventHandler) {
       
  2748     switch (priorityLevel) {
       
  2749       case ImmediatePriority:
       
  2750       case UserBlockingPriority:
       
  2751       case NormalPriority:
       
  2752       case LowPriority:
       
  2753       case IdlePriority:
       
  2754         break;
       
  2755 
       
  2756       default:
       
  2757         priorityLevel = NormalPriority;
       
  2758     }
       
  2759 
       
  2760     var previousPriorityLevel = currentPriorityLevel;
       
  2761     currentPriorityLevel = priorityLevel;
       
  2762 
       
  2763     try {
       
  2764       return eventHandler();
       
  2765     } finally {
       
  2766       currentPriorityLevel = previousPriorityLevel;
       
  2767     }
       
  2768   }
       
  2769 
       
  2770   function unstable_next(eventHandler) {
       
  2771     var priorityLevel;
       
  2772 
       
  2773     switch (currentPriorityLevel) {
       
  2774       case ImmediatePriority:
       
  2775       case UserBlockingPriority:
       
  2776       case NormalPriority:
       
  2777         // Shift down to normal priority
       
  2778         priorityLevel = NormalPriority;
       
  2779         break;
       
  2780 
       
  2781       default:
       
  2782         // Anything lower than normal priority should remain at the current level.
       
  2783         priorityLevel = currentPriorityLevel;
       
  2784         break;
       
  2785     }
       
  2786 
       
  2787     var previousPriorityLevel = currentPriorityLevel;
       
  2788     currentPriorityLevel = priorityLevel;
       
  2789 
       
  2790     try {
       
  2791       return eventHandler();
       
  2792     } finally {
       
  2793       currentPriorityLevel = previousPriorityLevel;
       
  2794     }
       
  2795   }
       
  2796 
       
  2797   function unstable_wrapCallback(callback) {
       
  2798     var parentPriorityLevel = currentPriorityLevel;
       
  2799     return function () {
       
  2800       // This is a fork of runWithPriority, inlined for performance.
       
  2801       var previousPriorityLevel = currentPriorityLevel;
       
  2802       currentPriorityLevel = parentPriorityLevel;
       
  2803 
       
  2804       try {
       
  2805         return callback.apply(this, arguments);
       
  2806       } finally {
       
  2807         currentPriorityLevel = previousPriorityLevel;
       
  2808       }
       
  2809     };
       
  2810   }
       
  2811 
       
  2812   function unstable_scheduleCallback(priorityLevel, callback, options) {
       
  2813     var currentTime = getCurrentTime();
       
  2814     var startTime;
       
  2815 
       
  2816     if (typeof options === 'object' && options !== null) {
       
  2817       var delay = options.delay;
       
  2818 
       
  2819       if (typeof delay === 'number' && delay > 0) {
       
  2820         startTime = currentTime + delay;
       
  2821       } else {
       
  2822         startTime = currentTime;
       
  2823       }
       
  2824     } else {
       
  2825       startTime = currentTime;
       
  2826     }
       
  2827 
       
  2828     var timeout;
       
  2829 
       
  2830     switch (priorityLevel) {
       
  2831       case ImmediatePriority:
       
  2832         timeout = IMMEDIATE_PRIORITY_TIMEOUT;
       
  2833         break;
       
  2834 
       
  2835       case UserBlockingPriority:
       
  2836         timeout = USER_BLOCKING_PRIORITY_TIMEOUT;
       
  2837         break;
       
  2838 
       
  2839       case IdlePriority:
       
  2840         timeout = IDLE_PRIORITY_TIMEOUT;
       
  2841         break;
       
  2842 
       
  2843       case LowPriority:
       
  2844         timeout = LOW_PRIORITY_TIMEOUT;
       
  2845         break;
       
  2846 
       
  2847       case NormalPriority:
       
  2848       default:
       
  2849         timeout = NORMAL_PRIORITY_TIMEOUT;
       
  2850         break;
       
  2851     }
       
  2852 
       
  2853     var expirationTime = startTime + timeout;
       
  2854     var newTask = {
       
  2855       id: taskIdCounter++,
       
  2856       callback: callback,
       
  2857       priorityLevel: priorityLevel,
       
  2858       startTime: startTime,
       
  2859       expirationTime: expirationTime,
       
  2860       sortIndex: -1
       
  2861     };
       
  2862 
       
  2863     if (startTime > currentTime) {
       
  2864       // This is a delayed task.
       
  2865       newTask.sortIndex = startTime;
       
  2866       push(timerQueue, newTask);
       
  2867 
       
  2868       if (peek(taskQueue) === null && newTask === peek(timerQueue)) {
       
  2869         // All tasks are delayed, and this is the task with the earliest delay.
       
  2870         if (isHostTimeoutScheduled) {
       
  2871           // Cancel an existing timeout.
       
  2872           cancelHostTimeout();
       
  2873         } else {
       
  2874           isHostTimeoutScheduled = true;
       
  2875         } // Schedule a timeout.
       
  2876 
       
  2877 
       
  2878         requestHostTimeout(handleTimeout, startTime - currentTime);
       
  2879       }
       
  2880     } else {
       
  2881       newTask.sortIndex = expirationTime;
       
  2882       push(taskQueue, newTask);
       
  2883       // wait until the next time we yield.
       
  2884 
       
  2885 
       
  2886       if (!isHostCallbackScheduled && !isPerformingWork) {
       
  2887         isHostCallbackScheduled = true;
       
  2888         requestHostCallback(flushWork);
       
  2889       }
       
  2890     }
       
  2891 
       
  2892     return newTask;
       
  2893   }
       
  2894 
       
  2895   function unstable_pauseExecution() {
       
  2896   }
       
  2897 
       
  2898   function unstable_continueExecution() {
       
  2899 
       
  2900     if (!isHostCallbackScheduled && !isPerformingWork) {
       
  2901       isHostCallbackScheduled = true;
       
  2902       requestHostCallback(flushWork);
       
  2903     }
       
  2904   }
       
  2905 
       
  2906   function unstable_getFirstCallbackNode() {
       
  2907     return peek(taskQueue);
       
  2908   }
       
  2909 
       
  2910   function unstable_cancelCallback(task) {
       
  2911     // remove from the queue because you can't remove arbitrary nodes from an
       
  2912     // array based heap, only the first one.)
       
  2913 
       
  2914 
       
  2915     task.callback = null;
       
  2916   }
       
  2917 
       
  2918   function unstable_getCurrentPriorityLevel() {
       
  2919     return currentPriorityLevel;
       
  2920   }
       
  2921 
       
  2922   var unstable_requestPaint = requestPaint;
       
  2923   var unstable_Profiling =  null;
       
  2924 
       
  2925 
       
  2926 
       
  2927   var Scheduler = /*#__PURE__*/Object.freeze({
       
  2928     __proto__: null,
       
  2929     unstable_ImmediatePriority: ImmediatePriority,
       
  2930     unstable_UserBlockingPriority: UserBlockingPriority,
       
  2931     unstable_NormalPriority: NormalPriority,
       
  2932     unstable_IdlePriority: IdlePriority,
       
  2933     unstable_LowPriority: LowPriority,
       
  2934     unstable_runWithPriority: unstable_runWithPriority,
       
  2935     unstable_next: unstable_next,
       
  2936     unstable_scheduleCallback: unstable_scheduleCallback,
       
  2937     unstable_cancelCallback: unstable_cancelCallback,
       
  2938     unstable_wrapCallback: unstable_wrapCallback,
       
  2939     unstable_getCurrentPriorityLevel: unstable_getCurrentPriorityLevel,
       
  2940     get unstable_shouldYield () { return shouldYieldToHost; },
       
  2941     unstable_requestPaint: unstable_requestPaint,
       
  2942     unstable_continueExecution: unstable_continueExecution,
       
  2943     unstable_pauseExecution: unstable_pauseExecution,
       
  2944     unstable_getFirstCallbackNode: unstable_getFirstCallbackNode,
       
  2945     get unstable_now () { return getCurrentTime; },
       
  2946     get unstable_forceFrameRate () { return forceFrameRate; },
       
  2947     unstable_Profiling: unstable_Profiling
       
  2948   });
       
  2949 
       
  2950   var DEFAULT_THREAD_ID = 0; // Counters used to generate unique IDs.
       
  2951 
       
  2952   var interactionIDCounter = 0;
       
  2953   var threadIDCounter = 0; // Set of currently traced interactions.
       
  2954   // Interactions "stack"–
       
  2955   // Meaning that newly traced interactions are appended to the previously active set.
       
  2956   // When an interaction goes out of scope, the previous set (if any) is restored.
       
  2957 
       
  2958   var interactionsRef = null; // Listener(s) to notify when interactions begin and end.
       
  2959 
       
  2960   var subscriberRef = null;
       
  2961 
       
  2962   {
       
  2963     interactionsRef = {
       
  2964       current: new Set()
       
  2965     };
       
  2966     subscriberRef = {
       
  2967       current: null
       
  2968     };
       
  2969   }
       
  2970   function unstable_clear(callback) {
       
  2971 
       
  2972     var prevInteractions = interactionsRef.current;
       
  2973     interactionsRef.current = new Set();
       
  2974 
       
  2975     try {
       
  2976       return callback();
       
  2977     } finally {
       
  2978       interactionsRef.current = prevInteractions;
       
  2979     }
       
  2980   }
       
  2981   function unstable_getCurrent() {
       
  2982     {
       
  2983       return interactionsRef.current;
       
  2984     }
       
  2985   }
       
  2986   function unstable_getThreadID() {
       
  2987     return ++threadIDCounter;
       
  2988   }
       
  2989   function unstable_trace(name, timestamp, callback) {
       
  2990     var threadID = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : DEFAULT_THREAD_ID;
       
  2991 
       
  2992     var interaction = {
       
  2993       __count: 1,
       
  2994       id: interactionIDCounter++,
       
  2995       name: name,
       
  2996       timestamp: timestamp
       
  2997     };
       
  2998     var prevInteractions = interactionsRef.current; // Traced interactions should stack/accumulate.
       
  2999     // To do that, clone the current interactions.
       
  3000     // The previous set will be restored upon completion.
       
  3001 
       
  3002     var interactions = new Set(prevInteractions);
       
  3003     interactions.add(interaction);
       
  3004     interactionsRef.current = interactions;
       
  3005     var subscriber = subscriberRef.current;
       
  3006     var returnValue;
       
  3007 
       
  3008     try {
       
  3009       if (subscriber !== null) {
       
  3010         subscriber.onInteractionTraced(interaction);
       
  3011       }
       
  3012     } finally {
       
  3013       try {
       
  3014         if (subscriber !== null) {
       
  3015           subscriber.onWorkStarted(interactions, threadID);
       
  3016         }
       
  3017       } finally {
       
  3018         try {
       
  3019           returnValue = callback();
       
  3020         } finally {
       
  3021           interactionsRef.current = prevInteractions;
       
  3022 
       
  3023           try {
       
  3024             if (subscriber !== null) {
       
  3025               subscriber.onWorkStopped(interactions, threadID);
       
  3026             }
       
  3027           } finally {
       
  3028             interaction.__count--; // If no async work was scheduled for this interaction,
       
  3029             // Notify subscribers that it's completed.
       
  3030 
       
  3031             if (subscriber !== null && interaction.__count === 0) {
       
  3032               subscriber.onInteractionScheduledWorkCompleted(interaction);
       
  3033             }
       
  3034           }
       
  3035         }
       
  3036       }
       
  3037     }
       
  3038 
       
  3039     return returnValue;
       
  3040   }
       
  3041   function unstable_wrap(callback) {
       
  3042     var threadID = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_THREAD_ID;
       
  3043 
       
  3044     var wrappedInteractions = interactionsRef.current;
       
  3045     var subscriber = subscriberRef.current;
       
  3046 
       
  3047     if (subscriber !== null) {
       
  3048       subscriber.onWorkScheduled(wrappedInteractions, threadID);
       
  3049     } // Update the pending async work count for the current interactions.
       
  3050     // Update after calling subscribers in case of error.
       
  3051 
       
  3052 
       
  3053     wrappedInteractions.forEach(function (interaction) {
       
  3054       interaction.__count++;
       
  3055     });
       
  3056     var hasRun = false;
       
  3057 
       
  3058     function wrapped() {
       
  3059       var prevInteractions = interactionsRef.current;
       
  3060       interactionsRef.current = wrappedInteractions;
       
  3061       subscriber = subscriberRef.current;
       
  3062 
       
  3063       try {
       
  3064         var returnValue;
       
  3065 
       
  3066         try {
       
  3067           if (subscriber !== null) {
       
  3068             subscriber.onWorkStarted(wrappedInteractions, threadID);
       
  3069           }
       
  3070         } finally {
       
  3071           try {
       
  3072             returnValue = callback.apply(undefined, arguments);
       
  3073           } finally {
       
  3074             interactionsRef.current = prevInteractions;
       
  3075 
       
  3076             if (subscriber !== null) {
       
  3077               subscriber.onWorkStopped(wrappedInteractions, threadID);
       
  3078             }
       
  3079           }
       
  3080         }
       
  3081 
       
  3082         return returnValue;
       
  3083       } finally {
       
  3084         if (!hasRun) {
       
  3085           // We only expect a wrapped function to be executed once,
       
  3086           // But in the event that it's executed more than once–
       
  3087           // Only decrement the outstanding interaction counts once.
       
  3088           hasRun = true; // Update pending async counts for all wrapped interactions.
       
  3089           // If this was the last scheduled async work for any of them,
       
  3090           // Mark them as completed.
       
  3091 
       
  3092           wrappedInteractions.forEach(function (interaction) {
       
  3093             interaction.__count--;
       
  3094 
       
  3095             if (subscriber !== null && interaction.__count === 0) {
       
  3096               subscriber.onInteractionScheduledWorkCompleted(interaction);
       
  3097             }
       
  3098           });
       
  3099         }
       
  3100       }
       
  3101     }
       
  3102 
       
  3103     wrapped.cancel = function cancel() {
       
  3104       subscriber = subscriberRef.current;
       
  3105 
       
  3106       try {
       
  3107         if (subscriber !== null) {
       
  3108           subscriber.onWorkCanceled(wrappedInteractions, threadID);
       
  3109         }
       
  3110       } finally {
       
  3111         // Update pending async counts for all wrapped interactions.
       
  3112         // If this was the last scheduled async work for any of them,
       
  3113         // Mark them as completed.
       
  3114         wrappedInteractions.forEach(function (interaction) {
       
  3115           interaction.__count--;
       
  3116 
       
  3117           if (subscriber && interaction.__count === 0) {
       
  3118             subscriber.onInteractionScheduledWorkCompleted(interaction);
       
  3119           }
       
  3120         });
       
  3121       }
       
  3122     };
       
  3123 
       
  3124     return wrapped;
       
  3125   }
       
  3126 
       
  3127   var subscribers = null;
       
  3128 
       
  3129   {
       
  3130     subscribers = new Set();
       
  3131   }
       
  3132 
       
  3133   function unstable_subscribe(subscriber) {
       
  3134     {
       
  3135       subscribers.add(subscriber);
       
  3136 
       
  3137       if (subscribers.size === 1) {
       
  3138         subscriberRef.current = {
       
  3139           onInteractionScheduledWorkCompleted: onInteractionScheduledWorkCompleted,
       
  3140           onInteractionTraced: onInteractionTraced,
       
  3141           onWorkCanceled: onWorkCanceled,
       
  3142           onWorkScheduled: onWorkScheduled,
       
  3143           onWorkStarted: onWorkStarted,
       
  3144           onWorkStopped: onWorkStopped
       
  3145         };
       
  3146       }
       
  3147     }
       
  3148   }
       
  3149   function unstable_unsubscribe(subscriber) {
       
  3150     {
       
  3151       subscribers.delete(subscriber);
       
  3152 
       
  3153       if (subscribers.size === 0) {
       
  3154         subscriberRef.current = null;
       
  3155       }
       
  3156     }
       
  3157   }
       
  3158 
       
  3159   function onInteractionTraced(interaction) {
       
  3160     var didCatchError = false;
       
  3161     var caughtError = null;
       
  3162     subscribers.forEach(function (subscriber) {
       
  3163       try {
       
  3164         subscriber.onInteractionTraced(interaction);
       
  3165       } catch (error) {
       
  3166         if (!didCatchError) {
       
  3167           didCatchError = true;
       
  3168           caughtError = error;
       
  3169         }
       
  3170       }
       
  3171     });
       
  3172 
       
  3173     if (didCatchError) {
       
  3174       throw caughtError;
       
  3175     }
       
  3176   }
       
  3177 
       
  3178   function onInteractionScheduledWorkCompleted(interaction) {
       
  3179     var didCatchError = false;
       
  3180     var caughtError = null;
       
  3181     subscribers.forEach(function (subscriber) {
       
  3182       try {
       
  3183         subscriber.onInteractionScheduledWorkCompleted(interaction);
       
  3184       } catch (error) {
       
  3185         if (!didCatchError) {
       
  3186           didCatchError = true;
       
  3187           caughtError = error;
       
  3188         }
       
  3189       }
       
  3190     });
       
  3191 
       
  3192     if (didCatchError) {
       
  3193       throw caughtError;
       
  3194     }
       
  3195   }
       
  3196 
       
  3197   function onWorkScheduled(interactions, threadID) {
       
  3198     var didCatchError = false;
       
  3199     var caughtError = null;
       
  3200     subscribers.forEach(function (subscriber) {
       
  3201       try {
       
  3202         subscriber.onWorkScheduled(interactions, threadID);
       
  3203       } catch (error) {
       
  3204         if (!didCatchError) {
       
  3205           didCatchError = true;
       
  3206           caughtError = error;
       
  3207         }
       
  3208       }
       
  3209     });
       
  3210 
       
  3211     if (didCatchError) {
       
  3212       throw caughtError;
       
  3213     }
       
  3214   }
       
  3215 
       
  3216   function onWorkStarted(interactions, threadID) {
       
  3217     var didCatchError = false;
       
  3218     var caughtError = null;
       
  3219     subscribers.forEach(function (subscriber) {
       
  3220       try {
       
  3221         subscriber.onWorkStarted(interactions, threadID);
       
  3222       } catch (error) {
       
  3223         if (!didCatchError) {
       
  3224           didCatchError = true;
       
  3225           caughtError = error;
       
  3226         }
       
  3227       }
       
  3228     });
       
  3229 
       
  3230     if (didCatchError) {
       
  3231       throw caughtError;
       
  3232     }
       
  3233   }
       
  3234 
       
  3235   function onWorkStopped(interactions, threadID) {
       
  3236     var didCatchError = false;
       
  3237     var caughtError = null;
       
  3238     subscribers.forEach(function (subscriber) {
       
  3239       try {
       
  3240         subscriber.onWorkStopped(interactions, threadID);
       
  3241       } catch (error) {
       
  3242         if (!didCatchError) {
       
  3243           didCatchError = true;
       
  3244           caughtError = error;
       
  3245         }
       
  3246       }
       
  3247     });
       
  3248 
       
  3249     if (didCatchError) {
       
  3250       throw caughtError;
       
  3251     }
       
  3252   }
       
  3253 
       
  3254   function onWorkCanceled(interactions, threadID) {
       
  3255     var didCatchError = false;
       
  3256     var caughtError = null;
       
  3257     subscribers.forEach(function (subscriber) {
       
  3258       try {
       
  3259         subscriber.onWorkCanceled(interactions, threadID);
       
  3260       } catch (error) {
       
  3261         if (!didCatchError) {
       
  3262           didCatchError = true;
       
  3263           caughtError = error;
       
  3264         }
       
  3265       }
       
  3266     });
       
  3267 
       
  3268     if (didCatchError) {
       
  3269       throw caughtError;
       
  3270     }
       
  3271   }
       
  3272 
       
  3273 
       
  3274 
       
  3275   var SchedulerTracing = /*#__PURE__*/Object.freeze({
       
  3276     __proto__: null,
       
  3277     get __interactionsRef () { return interactionsRef; },
       
  3278     get __subscriberRef () { return subscriberRef; },
       
  3279     unstable_clear: unstable_clear,
       
  3280     unstable_getCurrent: unstable_getCurrent,
       
  3281     unstable_getThreadID: unstable_getThreadID,
       
  3282     unstable_trace: unstable_trace,
       
  3283     unstable_wrap: unstable_wrap,
       
  3284     unstable_subscribe: unstable_subscribe,
       
  3285     unstable_unsubscribe: unstable_unsubscribe
       
  3286   });
       
  3287 
       
  3288   var ReactSharedInternals$1 = {
       
  3289     ReactCurrentDispatcher: ReactCurrentDispatcher,
       
  3290     ReactCurrentOwner: ReactCurrentOwner,
       
  3291     IsSomeRendererActing: IsSomeRendererActing,
       
  3292     ReactCurrentBatchConfig: ReactCurrentBatchConfig,
       
  3293     // Used by renderers to avoid bundling object-assign twice in UMD bundles:
       
  3294     assign: assign,
       
  3295     // Re-export the schedule API(s) for UMD bundles.
       
  3296     // This avoids introducing a dependency on a new UMD global in a minor update,
       
  3297     // Since that would be a breaking change (e.g. for all existing CodeSandboxes).
       
  3298     // This re-export is only required for UMD bundles;
       
  3299     // CJS bundles use the shared NPM package.
       
  3300     Scheduler: Scheduler,
       
  3301     SchedulerTracing: SchedulerTracing
       
  3302   };
       
  3303 
       
  3304   {
       
  3305     ReactSharedInternals$1.ReactDebugCurrentFrame = ReactDebugCurrentFrame;
       
  3306   }
       
  3307 
       
  3308   {
       
  3309 
       
  3310     try {
       
  3311       var frozenObject = Object.freeze({});
       
  3312       /* eslint-disable no-new */
       
  3313 
       
  3314       new Map([[frozenObject, null]]);
       
  3315       new Set([frozenObject]);
       
  3316       /* eslint-enable no-new */
       
  3317     } catch (e) {
       
  3318     }
       
  3319   }
       
  3320 
       
  3321   var createElement$1 =  createElementWithValidation ;
       
  3322   var cloneElement$1 =  cloneElementWithValidation ;
       
  3323   var createFactory =  createFactoryWithValidation ;
       
  3324   var Children = {
       
  3325     map: mapChildren,
       
  3326     forEach: forEachChildren,
       
  3327     count: countChildren,
       
  3328     toArray: toArray,
       
  3329     only: onlyChild
       
  3330   };
       
  3331 
       
  3332   exports.Children = Children;
       
  3333   exports.Component = Component;
       
  3334   exports.PureComponent = PureComponent;
       
  3335   exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals$1;
       
  3336   exports.cloneElement = cloneElement$1;
       
  3337   exports.createContext = createContext;
       
  3338   exports.createElement = createElement$1;
       
  3339   exports.createFactory = createFactory;
       
  3340   exports.createRef = createRef;
       
  3341   exports.forwardRef = forwardRef;
       
  3342   exports.isValidElement = isValidElement;
       
  3343   exports.lazy = lazy;
       
  3344   exports.memo = memo;
       
  3345   exports.useCallback = useCallback;
       
  3346   exports.useContext = useContext;
       
  3347   exports.useDebugValue = useDebugValue;
       
  3348   exports.useEffect = useEffect;
       
  3349   exports.useImperativeHandle = useImperativeHandle;
       
  3350   exports.useLayoutEffect = useLayoutEffect;
       
  3351   exports.useMemo = useMemo;
       
  3352   exports.useReducer = useReducer;
       
  3353   exports.useRef = useRef;
       
  3354   exports.useState = useState;
       
  3355   exports.version = ReactVersion;
       
  3356 
       
  3357 })));