(window["vcvWebpackJsonp4x"] = window["vcvWebpackJsonp4x"] || []).push([["element"],{

/***/ "./eventListing/component.js":
/*!***********************************!*\
  !*** ./eventListing/component.js ***!
  \***********************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _extends2 = __webpack_require__(/*! babel-runtime/helpers/extends */ \"./node_modules/babel-runtime/helpers/extends.js\");\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = __webpack_require__(/*! babel-runtime/core-js/object/get-prototype-of */ \"./node_modules/babel-runtime/core-js/object/get-prototype-of.js\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = __webpack_require__(/*! babel-runtime/helpers/classCallCheck */ \"./node_modules/babel-runtime/helpers/classCallCheck.js\");\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = __webpack_require__(/*! babel-runtime/helpers/createClass */ \"./node_modules/babel-runtime/helpers/createClass.js\");\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = __webpack_require__(/*! babel-runtime/helpers/possibleConstructorReturn */ \"./node_modules/babel-runtime/helpers/possibleConstructorReturn.js\");\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _get2 = __webpack_require__(/*! babel-runtime/helpers/get */ \"./node_modules/babel-runtime/helpers/get.js\");\n\nvar _get3 = _interopRequireDefault(_get2);\n\nvar _inherits2 = __webpack_require__(/*! babel-runtime/helpers/inherits */ \"./node_modules/babel-runtime/helpers/inherits.js\");\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _vcCake = __webpack_require__(/*! vc-cake */ \"./node_modules/vc-cake/index.js\");\n\nvar _vcCake2 = _interopRequireDefault(_vcCake);\n\nvar _server = __webpack_require__(/*! react-dom/server */ \"./node_modules/react-dom/server.browser.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar vcvAPI = _vcCake2.default.getService('api');\nvar renderProcessor = _vcCake2.default.getService('renderProcessor');\n\n/**\n * \n * Visual composer element for event listing.\n *\n * @since 3.1.5\n * \n */\nvar eventListingElement = function (_vcvAPI$elementCompon) {\n  (0, _inherits3.default)(eventListingElement, _vcvAPI$elementCompon);\n\n  function eventListingElement(props) {\n    (0, _classCallCheck3.default)(this, eventListingElement);\n\n    var _this = (0, _possibleConstructorReturn3.default)(this, (eventListingElement.__proto__ || (0, _getPrototypeOf2.default)(eventListingElement)).call(this, props));\n\n    _this.cancelled = '';\n    _this.featured = '';\n    _this.show_pagination = '';\n    _this.per_page = '';\n    _this.orderby = '';\n    _this.order = '';\n    _this.show_filters = '';\n    _this.show_categories = '';\n    _this.show_types = '';\n    _this.show_ticket_prices = '';\n    _this.categories = '';\n    _this.event_types = '';\n    _this.ticket_prices = '';\n    _this.location = '';\n    _this.keywords = '';\n    _this.selected_datetime = '';\n    _this.selected_category = '';\n    _this.selected_event_type = '';\n    _this.selected_ticket_price = '';\n    return _this;\n  }\n\n  (0, _createClass3.default)(eventListingElement, [{\n    key: 'componentDidMount',\n    value: function componentDidMount() {\n      (0, _get3.default)(eventListingElement.prototype.__proto__ || (0, _getPrototypeOf2.default)(eventListingElement.prototype), 'updateShortcodeToHtml', this).call(this, '[events]', this.ref);\n    }\n  }, {\n    key: 'componentDidUpdate',\n    value: function componentDidUpdate(prevProps) {\n      var _props$atts = this.props.atts,\n          featured = _props$atts.featured,\n          cancelled = _props$atts.cancelled,\n          show_pagination = _props$atts.show_pagination,\n          per_page = _props$atts.per_page,\n          orderby = _props$atts.orderby,\n          order = _props$atts.order,\n          show_filters = _props$atts.show_filters,\n          show_categories = _props$atts.show_categories,\n          show_types = _props$atts.show_types,\n          show_ticket_prices = _props$atts.show_ticket_prices,\n          categories = _props$atts.categories,\n          event_types = _props$atts.event_types,\n          ticket_prices = _props$atts.ticket_prices,\n          location = _props$atts.location,\n          keywords = _props$atts.keywords,\n          selected_datetime = _props$atts.selected_datetime,\n          selected_category = _props$atts.selected_category,\n          selected_event_type = _props$atts.selected_event_type,\n          selected_ticket_price = _props$atts.selected_ticket_price;\n\n      if (featured && featured !== '' && featured !== prevProps.atts.featured) this.featured = 'featured=' + featured;else if (featured == '') this.featured = '';\n\n      if (cancelled && cancelled !== prevProps.atts.cancelled) this.cancelled = 'cancelled=' + cancelled;\n\n      if (show_pagination && show_pagination !== prevProps.atts.show_pagination) this.show_pagination = 'show_pagination=' + show_pagination;\n\n      if (per_page && per_page !== '0' && per_page !== prevProps.atts.per_page) this.per_page = 'per_page=' + per_page;else if (per_page == '0') this.per_page = '';\n\n      if (orderby && orderby !== prevProps.atts.orderby) this.orderby = 'orderby=' + orderby;\n\n      if (order && order !== prevProps.atts.order) this.order = 'order=' + order;\n\n      if (show_filters && show_filters !== prevProps.atts.show_filters) this.show_filters = 'show_filters=' + show_filters;\n\n      if (show_categories && show_categories !== prevProps.atts.show_categories) this.show_categories = 'show_categories=' + show_categories;\n\n      if (show_types && show_types !== prevProps.atts.show_types) this.show_types = 'show_types=' + show_types;\n\n      if (show_ticket_prices && show_ticket_prices !== prevProps.atts.show_ticket_prices) this.show_ticket_prices = 'show_ticket_prices=' + show_ticket_prices;\n\n      if (categories && categories !== prevProps.atts.categories) this.categories = 'categories=' + categories;\n\n      if (event_types && event_types !== prevProps.atts.event_types) this.event_types = 'event_types=' + event_types;\n\n      if (ticket_prices && ticket_prices !== prevProps.atts.ticket_prices) this.ticket_prices = 'ticket_prices=' + ticket_prices;\n\n      if (location && location !== prevProps.atts.location) this.location = 'location=' + location;\n\n      if (keywords && keywords !== prevProps.atts.keywords) this.keywords = 'keywords=' + keywords;\n\n      if (selected_datetime && selected_datetime !== '0' && selected_datetime !== prevProps.atts.selected_datetime) this.selected_datetime = 'selected_datetime=' + selected_datetime;else if (selected_datetime == 0) this.selected_datetime = '';\n\n      if (selected_category && selected_category !== '0' && selected_category !== prevProps.atts.selected_category) this.selected_category = 'selected_category=' + selected_category;else if (selected_category == 0) this.selected_category = '';\n\n      if (selected_event_type && selected_event_type !== '0' && selected_event_type !== prevProps.atts.selected_event_type) this.selected_event_type = 'selected_event_type=' + selected_event_type;else if (selected_event_type == 0) this.selected_event_type = '';\n\n      if (selected_ticket_price && selected_category !== '0' && selected_ticket_price !== prevProps.atts.selected_ticket_price) this.selected_ticket_price = 'selected_ticket_price=' + selected_ticket_price;else if (selected_ticket_price == 0) this.selected_ticket_price = '';\n\n      (0, _get3.default)(eventListingElement.prototype.__proto__ || (0, _getPrototypeOf2.default)(eventListingElement.prototype), 'updateShortcodeToHtml', this).call(this, '[events ' + this.featured + ' ' + this.cancelled + ' ' + this.show_pagination + ' ' + this.per_page + ' ' + this.orderby + ' ' + this.order + ' ' + this.show_filters + ' ' + this.show_categories + ' ' + this.show_types + ' ' + this.show_ticket_prices + ' ' + this.categories + ' ' + this.event_types + ' ' + this.ticket_prices + ' ' + this.location + ' ' + this.keywords + ' ' + this.selected_datetime + ' ' + this.selected_category + ' ' + this.selected_event_type + ' ' + this.selected_ticket_price + ']', this.ref);\n    }\n  }, {\n    key: 'render',\n    value: function render() {\n      var _this2 = this;\n\n      var _props = this.props,\n          id = _props.id,\n          atts = _props.atts,\n          editor = _props.editor;\n      var customClass = atts.customClass,\n          metaCustomId = atts.metaCustomId; // destructuring assignment for attributes from settings.json with access public\n\n      var textBlockClasses = 'vce-text-test-block';\n      var wrapperClasses = 'vce-text-block-test-wrapper vce';\n      var customProps = {};\n      if (typeof customClass === 'string' && customClass) {\n        textBlockClasses = textBlockClasses.concat(' ' + customClass);\n      }\n\n      if (metaCustomId) {\n        customProps.id = metaCustomId;\n      }\n\n      var doAll = this.applyDO('all');\n\n      return _react2.default.createElement(\n        'div',\n        (0, _extends3.default)({ className: textBlockClasses }, editor, customProps),\n        _react2.default.createElement(\n          'div',\n          (0, _extends3.default)({ className: wrapperClasses, id: 'el-' + id }, doAll),\n          _react2.default.createElement('div', { className: 'vcvhelper', ref: function ref(_ref) {\n              _this2.ref = _ref;\n            }, 'data-vcvs-html': '[events ' + this.featured + ' ' + this.cancelled + ' ' + this.show_pagination + ' ' + this.per_page + ' ' + this.orderby + ' ' + this.order + ' ' + this.show_filters + ' ' + this.show_categories + ' ' + this.show_types + ' ' + this.show_ticket_prices + ' ' + this.categories + ' ' + this.event_types + ' ' + this.ticket_prices + ' ' + this.location + ' ' + this.keywords + ' ' + this.selected_datetime + ' ' + this.selected_category + ' ' + this.selected_event_type + ' ' + this.selected_ticket_price + ']' })\n        )\n      );\n    }\n  }]);\n  return eventListingElement;\n}(vcvAPI.elementComponent);\n\nexports.default = eventListingElement;\n\n//# sourceURL=webpack:///./eventListing/component.js?");

/***/ }),

/***/ "./eventListing/index.js":
/*!*******************************!*\
  !*** ./eventListing/index.js ***!
  \*******************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nvar _vcCake = __webpack_require__(/*! vc-cake */ \"./node_modules/vc-cake/index.js\");\n\nvar _vcCake2 = _interopRequireDefault(_vcCake);\n\nvar _component = __webpack_require__(/*! ./component */ \"./eventListing/component.js\");\n\nvar _component2 = _interopRequireDefault(_component);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar vcvAddElement = _vcCake2.default.getService('cook').add;\n\nvcvAddElement(__webpack_require__(/*! ./settings.json */ \"./eventListing/settings.json\"),\n\n// Component callback\nfunction (component) {\n  component.add(_component2.default);\n});\n\n//# sourceURL=webpack:///./eventListing/index.js?");

/***/ }),

/***/ "./eventListing/settings.json":
/*!************************************!*\
  !*** ./eventListing/settings.json ***!
  \************************************/
/*! exports provided: featured, cancelled, show_filters, show_categories, show_types, show_ticket_prices, orderby, order, show_pagination, per_page, categories, event_types, ticket_prices, location, keywords, selected_datetime, selected_category, selected_event_type, selected_ticket_price, darkTextSkin, designOptions, editFormTab1, metaEditFormTabs, relatedTo, metaOrder, customClass, metaCustomId, tag, default */
/***/ (function(module) {

eval("module.exports = {\"featured\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Show Featured\",\"values\":[{\"label\":\"All Events\",\"value\":\"\"},{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"cancelled\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"true\",\"options\":{\"label\":\"Show Cancelled\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"show_filters\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"true\",\"options\":{\"label\":\"Show Filter\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"show_categories\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"true\",\"options\":{\"label\":\"Show Categories\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"show_types\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"true\",\"options\":{\"label\":\"Show Types\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"show_ticket_prices\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"true\",\"options\":{\"label\":\"Show Ticket Prices\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"orderby\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"event_start_date\",\"options\":{\"label\":\"Order By\",\"values\":[{\"label\":\"Event Start Date\",\"value\":\"event_start_date\"},{\"label\":\"Random\",\"value\":\"rand\"},{\"label\":\"Title\",\"value\":\"title\"},{\"label\":\"ID\",\"value\":\"ID\"},{\"label\":\"Name\",\"value\":\"name\"}]}},\"order\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"ASC\",\"options\":{\"label\":\"Order\",\"values\":[{\"label\":\"ASC\",\"value\":\"ASC\"},{\"label\":\"DESC\",\"value\":\"DESC\"}]}},\"show_pagination\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"false\",\"name\":\"pagination\",\"options\":{\"label\":\"Show Pagination\",\"values\":[{\"label\":\"False\",\"value\":\"false\"},{\"label\":\"True\",\"value\":\"true\"}]}},\"per_page\":{\"type\":\"number\",\"access\":\"public\",\"value\":\"10\",\"options\":{\"label\":\"Post Per Page\",\"description\":\"\",\"min\":-1}},\"categories\":{\"type\":\"autocomplete\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event Categories\",\"action\":\"listCategory\",\"description\":\"Add Event Categories separated by Comma\"}},\"event_types\":{\"type\":\"autocomplete\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event Types\",\"action\":\"listType\",\"description\":\"Add Event Types separated by Comma\"}},\"ticket_prices\":{\"type\":\"string\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event Ticket Prices\",\"description\":\"Add Event Ticket Price separated by Comma\"}},\"location\":{\"type\":\"string\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event Location\",\"description\":\"\"}},\"keywords\":{\"type\":\"string\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event Keywords\",\"description\":\"\"}},\"selected_datetime\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Default Selected Date Filter\",\"global\":\"vcvWPEMDateList\"}},\"selected_category\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Selected Category\",\"global\":\"vcvWPEMCatList\"}},\"selected_event_type\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Default Selected Event Type\",\"global\":\"vcvWPEMTypeList\"}},\"selected_ticket_price\":{\"type\":\"dropdown\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Default Selected Event Ticke Price\",\"global\":\"vcvWPEMTicketType\"}},\"darkTextSkin\":{\"type\":\"toggleSmall\",\"access\":\"public\",\"value\":false},\"designOptions\":{\"type\":\"designOptions\",\"access\":\"public\",\"value\":{},\"options\":{\"label\":\"Design Options\"}},\"editFormTab1\":{\"type\":\"group\",\"access\":\"protected\",\"value\":[\"show_pagination\",\"per_page\",\"orderby\",\"order\",\"show_filters\",\"show_categories\",\"show_types\",\"show_ticket_prices\",\"categories\",\"event_types\",\"ticket_prices\",\"location\",\"keywords\",\"selected_datetime\",\"selected_category\",\"selected_event_type\",\"selected_ticket_price\",\"featured\",\"cancelled\",\"metaCustomId\",\"customClass\"],\"options\":{\"label\":\"General\"}},\"metaEditFormTabs\":{\"type\":\"group\",\"access\":\"protected\",\"value\":[\"editFormTab1\",\"designOptions\"]},\"relatedTo\":{\"type\":\"group\",\"access\":\"protected\",\"value\":[\"General\"]},\"metaOrder\":{\"type\":\"number\",\"access\":\"protected\",\"value\":3},\"customClass\":{\"type\":\"string\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Extra class name\",\"description\":\"Add an extra class name to the element and refer to it from Custom CSS option.\"}},\"metaCustomId\":{\"type\":\"customId\",\"access\":\"public\",\"value\":\"\",\"options\":{\"label\":\"Event ID\",\"description\":\"Apply event ID to get event detail\"}},\"tag\":{\"access\":\"protected\",\"type\":\"string\",\"value\":\"eventListing\"}};\n\n//# sourceURL=webpack:///./eventListing/settings.json?");

/***/ }),

/***/ "./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js ***!
  \**********************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("module.exports = { \"default\": __webpack_require__(/*! core-js/library/fn/object/get-own-property-descriptor */ \"./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\"), __esModule: true };\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js?");

/***/ }),

/***/ "./node_modules/babel-runtime/helpers/get.js":
/*!***************************************************!*\
  !*** ./node_modules/babel-runtime/helpers/get.js ***!
  \***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nexports.__esModule = true;\n\nvar _getPrototypeOf = __webpack_require__(/*! ../core-js/object/get-prototype-of */ \"./node_modules/babel-runtime/core-js/object/get-prototype-of.js\");\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _getOwnPropertyDescriptor = __webpack_require__(/*! ../core-js/object/get-own-property-descriptor */ \"./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\");\n\nvar _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function get(object, property, receiver) {\n  if (object === null) object = Function.prototype;\n  var desc = (0, _getOwnPropertyDescriptor2.default)(object, property);\n\n  if (desc === undefined) {\n    var parent = (0, _getPrototypeOf2.default)(object);\n\n    if (parent === null) {\n      return undefined;\n    } else {\n      return get(parent, property, receiver);\n    }\n  } else if (\"value\" in desc) {\n    return desc.value;\n  } else {\n    var getter = desc.get;\n\n    if (getter === undefined) {\n      return undefined;\n    }\n\n    return getter.call(receiver);\n  }\n};\n\n//# sourceURL=webpack:///./node_modules/babel-runtime/helpers/get.js?");

/***/ }),

/***/ "./node_modules/core-js/library/fn/object/get-own-property-descriptor.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js ***!
  \*******************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

eval("__webpack_require__(/*! ../../modules/es6.object.get-own-property-descriptor */ \"./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\");\nvar $Object = __webpack_require__(/*! ../../modules/_core */ \"./node_modules/core-js/library/modules/_core.js\").Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key) {\n  return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//# sourceURL=webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js?");

/***/ }),

/***/ "./node_modules/react-dom/cjs/react-dom-server.browser.development.js":
/*!****************************************************************************!*\
  !*** ./node_modules/react-dom/cjs/react-dom-server.browser.development.js ***!
  \****************************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("/** @license React v16.8.1\n * react-dom-server.browser.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\n\n\nif (true) {\n  (function() {\n'use strict';\n\nvar _assign = __webpack_require__(/*! object-assign */ \"./node_modules/object-assign/index.js\");\nvar React = __webpack_require__(/*! react */ \"./node_modules/react/index.js\");\nvar checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ \"./node_modules/react-dom/node_modules/prop-types/checkPropTypes.js\");\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function () {};\n\n{\n  validateFormat = function (format) {\n    if (format === undefined) {\n      throw new Error('invariant requires an error message argument');\n    }\n  };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n  validateFormat(format);\n\n  if (!condition) {\n    var error = void 0;\n    if (format === undefined) {\n      error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n    } else {\n      var args = [a, b, c, d, e, f];\n      var argIndex = 0;\n      error = new Error(format.replace(/%s/g, function () {\n        return args[argIndex++];\n      }));\n      error.name = 'Invariant Violation';\n    }\n\n    error.framesToPop = 1; // we don't care about invariant's own frame\n    throw error;\n  }\n}\n\n// Relying on the `invariant()` implementation lets us\n// preserve the format and params in the www builds.\n\n// TODO: this is special because it gets imported during build.\n\nvar ReactVersion = '16.8.1';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warningWithoutStack = function () {};\n\n{\n  warningWithoutStack = function (condition, format) {\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    if (format === undefined) {\n      throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n    if (args.length > 8) {\n      // Check before the condition to catch violations early.\n      throw new Error('warningWithoutStack() currently supports at most 8 arguments.');\n    }\n    if (condition) {\n      return;\n    }\n    if (typeof console !== 'undefined') {\n      var argsWithFormat = args.map(function (item) {\n        return '' + item;\n      });\n      argsWithFormat.unshift('Warning: ' + format);\n\n      // We intentionally don't use spread (or .apply) directly because it\n      // breaks IE9: https://github.com/facebook/react/issues/13610\n      Function.prototype.apply.call(console.error, console, argsWithFormat);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      var argIndex = 0;\n      var message = 'Warning: ' + format.replace(/%s/g, function () {\n        return args[argIndex++];\n      });\n      throw new Error(message);\n    } catch (x) {}\n  };\n}\n\nvar warningWithoutStack$1 = warningWithoutStack;\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\n\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;\n\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\n\nvar Resolved = 1;\n\n\nfunction refineResolvedLazyComponent(lazyComponent) {\n  return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var functionName = innerType.displayName || innerType.name || '';\n  return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);\n}\n\nfunction getComponentName(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n  {\n    if (typeof type.tag === 'number') {\n      warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n  if (typeof type === 'string') {\n    return type;\n  }\n  switch (type) {\n    case REACT_CONCURRENT_MODE_TYPE:\n      return 'ConcurrentMode';\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n  }\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        return 'Context.Consumer';\n      case REACT_PROVIDER_TYPE:\n        return 'Context.Provider';\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n      case REACT_MEMO_TYPE:\n        return getComponentName(type.type);\n      case REACT_LAZY_TYPE:\n        {\n          var thenable = type;\n          var resolvedThenable = refineResolvedLazyComponent(thenable);\n          if (resolvedThenable) {\n            return getComponentName(resolvedThenable);\n          }\n        }\n    }\n  }\n  return null;\n}\n\n/**\n * Forked from fbjs/warning:\n * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js\n *\n * Only change is we use console.warn instead of console.error,\n * and do nothing when 'console' is not supported.\n * This really simplifies the code.\n * ---\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar lowPriorityWarning = function () {};\n\n{\n  var printWarning = function (format) {\n    for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n      args[_key - 1] = arguments[_key];\n    }\n\n    var argIndex = 0;\n    var message = 'Warning: ' + format.replace(/%s/g, function () {\n      return args[argIndex++];\n    });\n    if (typeof console !== 'undefined') {\n      console.warn(message);\n    }\n    try {\n      // --- Welcome to debugging React ---\n      // This error was thrown as a convenience so that you can use this stack\n      // to find the callsite that caused this warning to fire.\n      throw new Error(message);\n    } catch (x) {}\n  };\n\n  lowPriorityWarning = function (condition, format) {\n    if (format === undefined) {\n      throw new Error('`lowPriorityWarning(condition, format, ...args)` requires a warning ' + 'message argument');\n    }\n    if (!condition) {\n      for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n        args[_key2 - 2] = arguments[_key2];\n      }\n\n      printWarning.apply(undefined, [format].concat(args));\n    }\n  };\n}\n\nvar lowPriorityWarning$1 = lowPriorityWarning;\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n// Prevent newer renderers from RTE when used with older react package versions.\n// Current owner and dispatcher used to share the same ref,\n// but PR #14548 split them out to better support the react-debug-tools package.\nif (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {\n  ReactSharedInternals.ReactCurrentDispatcher = {\n    current: null\n  };\n}\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = warningWithoutStack$1;\n\n{\n  warning = function (condition, format) {\n    if (condition) {\n      return;\n    }\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n    // eslint-disable-next-line react-internal/warning-and-invariant-args\n\n    for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n      args[_key - 2] = arguments[_key];\n    }\n\n    warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));\n  };\n}\n\nvar warning$1 = warning;\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\n\nvar describeComponentFrame = function (name, source, ownerName) {\n  var sourceInfo = '';\n  if (source) {\n    var path = source.fileName;\n    var fileName = path.replace(BEFORE_SLASH_RE, '');\n    {\n      // In DEV, include code for a common special case:\n      // prefer \"folder/index.js\" instead of just \"index.js\".\n      if (/^index\\./.test(fileName)) {\n        var match = path.match(BEFORE_SLASH_RE);\n        if (match) {\n          var pathBeforeSlash = match[1];\n          if (pathBeforeSlash) {\n            var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n            fileName = folderName + '/' + fileName;\n          }\n        }\n      }\n    }\n    sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n  } else if (ownerName) {\n    sourceInfo = ' (created by ' + ownerName + ')';\n  }\n  return '\\n    in ' + (name || 'Unknown') + sourceInfo;\n};\n\n// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:\n\n\n// In some cases, StrictMode should also double-render lifecycles.\n// This can be confusing for tests though,\n// And it can be bad for performance in production.\n// This feature flag can be used to control the behavior:\n\n\n// To preserve the \"Pause on caught exceptions\" behavior of the debugger, we\n// replay the begin phase of a failed component inside invokeGuardedCallback.\n\n\n// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:\nvar warnAboutDeprecatedLifecycles = false;\n\n// Gather advanced timing metrics for Profiler subtrees.\n\n\n// Trace which interactions trigger each commit.\n\n\n// Only used in www builds.\nvar enableSuspenseServerRenderer = false; // TODO: true? Here it might just be false.\n\n// Only used in www builds.\n\n\n// Only used in www builds.\n\n\n// React Fire: prevent the value and checked attributes from syncing\n// with their related DOM properties\n\n\n// These APIs will no longer be \"unstable\" in the upcoming 16.7 release,\n// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.\n\nvar ReactDebugCurrentFrame$1 = void 0;\n{\n  ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nvar didWarnAboutInvalidateContextType = {};\n\nvar emptyObject = {};\n{\n  Object.freeze(emptyObject);\n}\n\nfunction maskContext(type, context) {\n  var contextTypes = type.contextTypes;\n  if (!contextTypes) {\n    return emptyObject;\n  }\n  var maskedContext = {};\n  for (var contextName in contextTypes) {\n    maskedContext[contextName] = context[contextName];\n  }\n  return maskedContext;\n}\n\nfunction checkContextTypes(typeSpecs, values, location) {\n  {\n    checkPropTypes(typeSpecs, values, location, 'Component', ReactDebugCurrentFrame$1.getCurrentStack);\n  }\n}\n\nfunction validateContextBounds(context, threadID) {\n  // If we don't have enough slots in this context to store this threadID,\n  // fill it in without leaving any holes to ensure that the VM optimizes\n  // this as non-holey index properties.\n  // (Note: If `react` package is < 16.6, _threadCount is undefined.)\n  for (var i = context._threadCount | 0; i <= threadID; i++) {\n    // We assume that this is the same as the defaultValue which might not be\n    // true if we're rendering inside a secondary renderer but they are\n    // secondary because these use cases are very rare.\n    context[i] = context._currentValue2;\n    context._threadCount = i + 1;\n  }\n}\n\nfunction processContext(type, context, threadID) {\n  var contextType = type.contextType;\n  if (typeof contextType === 'object' && contextType !== null) {\n    {\n      if (contextType.$$typeof !== REACT_CONTEXT_TYPE) {\n        var name = getComponentName(type) || 'Component';\n        if (!didWarnAboutInvalidateContextType[name]) {\n          didWarnAboutInvalidateContextType[name] = true;\n          warningWithoutStack$1(false, '%s defines an invalid contextType. ' + 'contextType should point to the Context object returned by React.createContext(). ' + 'Did you accidentally pass the Context.Provider instead?', name);\n        }\n      }\n    }\n    validateContextBounds(contextType, threadID);\n    return contextType[threadID];\n  } else {\n    var maskedContext = maskContext(type, context);\n    {\n      if (type.contextTypes) {\n        checkContextTypes(type.contextTypes, maskedContext, 'context');\n      }\n    }\n    return maskedContext;\n  }\n}\n\n// Allocates a new index for each request. Tries to stay as compact as possible so that these\n// indices can be used to reference a tightly packaged array. As opposed to being used in a Map.\n// The first allocated index is 1.\n\nvar nextAvailableThreadIDs = new Uint16Array(16);\nfor (var i = 0; i < 15; i++) {\n  nextAvailableThreadIDs[i] = i + 1;\n}\nnextAvailableThreadIDs[15] = 0;\n\nfunction growThreadCountAndReturnNextAvailable() {\n  var oldArray = nextAvailableThreadIDs;\n  var oldSize = oldArray.length;\n  var newSize = oldSize * 2;\n  !(newSize <= 0x10000) ? invariant(false, 'Maximum number of concurrent React renderers exceeded. This can happen if you are not properly destroying the Readable provided by React. Ensure that you call .destroy() on it if you no longer want to read from it, and did not read to the end. If you use .pipe() this should be automatic.') : void 0;\n  var newArray = new Uint16Array(newSize);\n  newArray.set(oldArray);\n  nextAvailableThreadIDs = newArray;\n  nextAvailableThreadIDs[0] = oldSize + 1;\n  for (var _i = oldSize; _i < newSize - 1; _i++) {\n    nextAvailableThreadIDs[_i] = _i + 1;\n  }\n  nextAvailableThreadIDs[newSize - 1] = 0;\n  return oldSize;\n}\n\nfunction allocThreadID() {\n  var nextID = nextAvailableThreadIDs[0];\n  if (nextID === 0) {\n    return growThreadCountAndReturnNextAvailable();\n  }\n  nextAvailableThreadIDs[0] = nextAvailableThreadIDs[nextID];\n  return nextID;\n}\n\nfunction freeThreadID(id) {\n  nextAvailableThreadIDs[id] = nextAvailableThreadIDs[0];\n  nextAvailableThreadIDs[0] = id;\n}\n\n// A reserved attribute.\n// It is handled by React separately and shouldn't be written to the DOM.\nvar RESERVED = 0;\n\n// A simple string attribute.\n// Attributes that aren't in the whitelist are presumed to have this type.\nvar STRING = 1;\n\n// A string attribute that accepts booleans in React. In HTML, these are called\n// \"enumerated\" attributes with \"true\" and \"false\" as possible values.\n// When true, it should be set to a \"true\" string.\n// When false, it should be set to a \"false\" string.\nvar BOOLEANISH_STRING = 2;\n\n// A real boolean attribute.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\nvar BOOLEAN = 3;\n\n// An attribute that can be used as a flag as well as with a value.\n// When true, it should be present (set either to an empty string or its name).\n// When false, it should be omitted.\n// For any other value, should be present with that value.\nvar OVERLOADED_BOOLEAN = 4;\n\n// An attribute that must be numeric or parse as a numeric.\n// When falsy, it should be removed.\nvar NUMERIC = 5;\n\n// An attribute that must be positive numeric or parse as a positive numeric.\n// When falsy, it should be removed.\nvar POSITIVE_NUMERIC = 6;\n\n/* eslint-disable max-len */\nvar ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\n/* eslint-enable max-len */\nvar ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\\\-.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\n\n\nvar ROOT_ATTRIBUTE_NAME = 'data-reactroot';\nvar VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$1 = Object.prototype.hasOwnProperty;\nvar illegalAttributeNameCache = {};\nvar validatedAttributeNameCache = {};\n\nfunction isAttributeNameSafe(attributeName) {\n  if (hasOwnProperty$1.call(validatedAttributeNameCache, attributeName)) {\n    return true;\n  }\n  if (hasOwnProperty$1.call(illegalAttributeNameCache, attributeName)) {\n    return false;\n  }\n  if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {\n    validatedAttributeNameCache[attributeName] = true;\n    return true;\n  }\n  illegalAttributeNameCache[attributeName] = true;\n  {\n    warning$1(false, 'Invalid attribute name: `%s`', attributeName);\n  }\n  return false;\n}\n\nfunction shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null) {\n    return propertyInfo.type === RESERVED;\n  }\n  if (isCustomComponentTag) {\n    return false;\n  }\n  if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {\n    return true;\n  }\n  return false;\n}\n\nfunction shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {\n  if (propertyInfo !== null && propertyInfo.type === RESERVED) {\n    return false;\n  }\n  switch (typeof value) {\n    case 'function':\n    // $FlowIssue symbol is perfectly valid here\n    case 'symbol':\n      // eslint-disable-line\n      return true;\n    case 'boolean':\n      {\n        if (isCustomComponentTag) {\n          return false;\n        }\n        if (propertyInfo !== null) {\n          return !propertyInfo.acceptsBooleans;\n        } else {\n          var prefix = name.toLowerCase().slice(0, 5);\n          return prefix !== 'data-' && prefix !== 'aria-';\n        }\n      }\n    default:\n      return false;\n  }\n}\n\nfunction shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {\n  if (value === null || typeof value === 'undefined') {\n    return true;\n  }\n  if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {\n    return true;\n  }\n  if (isCustomComponentTag) {\n    return false;\n  }\n  if (propertyInfo !== null) {\n    switch (propertyInfo.type) {\n      case BOOLEAN:\n        return !value;\n      case OVERLOADED_BOOLEAN:\n        return value === false;\n      case NUMERIC:\n        return isNaN(value);\n      case POSITIVE_NUMERIC:\n        return isNaN(value) || value < 1;\n    }\n  }\n  return false;\n}\n\nfunction getPropertyInfo(name) {\n  return properties.hasOwnProperty(name) ? properties[name] : null;\n}\n\nfunction PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {\n  this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;\n  this.attributeName = attributeName;\n  this.attributeNamespace = attributeNamespace;\n  this.mustUseProperty = mustUseProperty;\n  this.propertyName = name;\n  this.type = type;\n}\n\n// When adding attributes to this list, be sure to also add them to\n// the `possibleStandardNames` module to ensure casing and incorrect\n// name warnings.\nvar properties = {};\n\n// These props are reserved by React. They shouldn't be written to the DOM.\n['children', 'dangerouslySetInnerHTML',\n// TODO: This prevents the assignment of defaultValue to regular\n// elements (not just inputs). Now that ReactDOMInput assigns to the\n// defaultValue property -- do we need this?\n'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// A few React string attributes have a different name.\n// This is a mapping from React prop names to the attribute names.\n[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {\n  var name = _ref[0],\n      attributeName = _ref[1];\n\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" HTML attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are \"enumerated\" SVG attributes that accept \"true\" and \"false\".\n// In React, we let users pass `true` and `false` even though technically\n// these aren't boolean attributes (they are coerced to strings).\n// Since these are SVG attributes, their attribute names are case-sensitive.\n['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML boolean attributes.\n['allowFullScreen', 'async',\n// Note: there is a special case that prevents it from being written to the DOM\n// on the client side because the browsers are inconsistent. Instead we call focus().\n'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',\n// Microdata\n'itemScope'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are the few React props that we set as DOM properties\n// rather than attributes. These are all booleans.\n['checked',\n// Note: `option.selected` is not updated if `select.multiple` is\n// disabled with `removeAttribute`. We have special logic for handling this.\n'multiple', 'muted', 'selected'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that are \"overloaded booleans\": they behave like\n// booleans, but can also accept a string value.\n['capture', 'download'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be positive numbers.\n['cols', 'rows', 'size', 'span'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty\n  name, // attributeName\n  null);\n} // attributeNamespace\n);\n\n// These are HTML attributes that must be numbers.\n['rowSpan', 'start'].forEach(function (name) {\n  properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty\n  name.toLowerCase(), // attributeName\n  null);\n} // attributeNamespace\n);\n\nvar CAMELIZE = /[\\-\\:]([a-z])/g;\nvar capitalize = function (token) {\n  return token[1].toUpperCase();\n};\n\n// This is a list of all SVG attributes that need special casing, namespacing,\n// or boolean value assignment. Regular attributes that just accept strings\n// and have the same names are omitted, just like in the HTML whitelist.\n// Some of these attributes can be hard to find. This list was created by\n// scrapping the MDN documentation.\n['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, null);\n} // attributeNamespace\n);\n\n// String SVG attributes with the xlink namespace.\n['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/1999/xlink');\n});\n\n// String SVG attributes with the xml namespace.\n['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {\n  var name = attributeName.replace(CAMELIZE, capitalize);\n  properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty\n  attributeName, 'http://www.w3.org/XML/1998/namespace');\n});\n\n// Special case: this attribute exists both in HTML and SVG.\n// Its \"tabindex\" attribute name is case-sensitive in SVG so we can't just use\n// its React `tabIndex` name, like we do for attributes that exist only in HTML.\nproperties.tabIndex = new PropertyInfoRecord('tabIndex', STRING, false, // mustUseProperty\n'tabindex', // attributeName\nnull);\n\n// code copied and modified from escape-html\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Escapes special characters and HTML entities in a given html string.\n *\n * @param  {string} string HTML string to escape for later insertion\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n  var str = '' + string;\n  var match = matchHtmlRegExp.exec(str);\n\n  if (!match) {\n    return str;\n  }\n\n  var escape = void 0;\n  var html = '';\n  var index = void 0;\n  var lastIndex = 0;\n\n  for (index = match.index; index < str.length; index++) {\n    switch (str.charCodeAt(index)) {\n      case 34:\n        // \"\n        escape = '&quot;';\n        break;\n      case 38:\n        // &\n        escape = '&amp;';\n        break;\n      case 39:\n        // '\n        escape = '&#x27;'; // modified from escape-html; used to be '&#39'\n        break;\n      case 60:\n        // <\n        escape = '&lt;';\n        break;\n      case 62:\n        // >\n        escape = '&gt;';\n        break;\n      default:\n        continue;\n    }\n\n    if (lastIndex !== index) {\n      html += str.substring(lastIndex, index);\n    }\n\n    lastIndex = index + 1;\n    html += escape;\n  }\n\n  return lastIndex !== index ? html + str.substring(lastIndex, index) : html;\n}\n// end code copied and modified from escape-html\n\n/**\n * Escapes text to prevent scripting attacks.\n *\n * @param {*} text Text value to escape.\n * @return {string} An escaped string.\n */\nfunction escapeTextForBrowser(text) {\n  if (typeof text === 'boolean' || typeof text === 'number') {\n    // this shortcircuit helps perf for types that we know will never have\n    // special characters, especially given that this function is used often\n    // for numeric dom ids.\n    return '' + text;\n  }\n  return escapeHtml(text);\n}\n\n/**\n * Escapes attribute value to prevent scripting attacks.\n *\n * @param {*} value Value to escape.\n * @return {string} An escaped string.\n */\nfunction quoteAttributeValueForBrowser(value) {\n  return '\"' + escapeTextForBrowser(value) + '\"';\n}\n\n/**\n * Operations for dealing with DOM properties.\n */\n\n/**\n * Creates markup for the ID property.\n *\n * @param {string} id Unescaped ID.\n * @return {string} Markup string.\n */\n\n\nfunction createMarkupForRoot() {\n  return ROOT_ATTRIBUTE_NAME + '=\"\"';\n}\n\n/**\n * Creates markup for a property.\n *\n * @param {string} name\n * @param {*} value\n * @return {?string} Markup string, or null if the property was invalid.\n */\nfunction createMarkupForProperty(name, value) {\n  var propertyInfo = getPropertyInfo(name);\n  if (name !== 'style' && shouldIgnoreAttribute(name, propertyInfo, false)) {\n    return '';\n  }\n  if (shouldRemoveAttribute(name, value, propertyInfo, false)) {\n    return '';\n  }\n  if (propertyInfo !== null) {\n    var attributeName = propertyInfo.attributeName;\n    var type = propertyInfo.type;\n\n    if (type === BOOLEAN || type === OVERLOADED_BOOLEAN && value === true) {\n      return attributeName + '=\"\"';\n    } else {\n      return attributeName + '=' + quoteAttributeValueForBrowser(value);\n    }\n  } else if (isAttributeNameSafe(name)) {\n    return name + '=' + quoteAttributeValueForBrowser(value);\n  }\n  return '';\n}\n\n/**\n * Creates markup for a custom property.\n *\n * @param {string} name\n * @param {*} value\n * @return {string} Markup string, or empty string if the property was invalid.\n */\nfunction createMarkupForCustomAttribute(name, value) {\n  if (!isAttributeNameSafe(name) || value == null) {\n    return '';\n  }\n  return name + '=' + quoteAttributeValueForBrowser(value);\n}\n\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n  return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n  ;\n}\n\nvar currentlyRenderingComponent = null;\nvar firstWorkInProgressHook = null;\nvar workInProgressHook = null;\n// Whether the work-in-progress hook is a re-rendered hook\nvar isReRender = false;\n// Whether an update was scheduled during the currently executing render pass.\nvar didScheduleRenderPhaseUpdate = false;\n// Lazily created map of render-phase updates\nvar renderPhaseUpdates = null;\n// Counter to prevent infinite loops.\nvar numberOfReRenders = 0;\nvar RE_RENDER_LIMIT = 25;\n\nvar isInHookUserCodeInDev = false;\n\n// In DEV, this is the name of the currently executing primitive hook\nvar currentHookNameInDev = void 0;\n\nfunction resolveCurrentlyRenderingComponent() {\n  !(currentlyRenderingComponent !== null) ? invariant(false, 'Hooks can only be called inside the body of a function component. (https://fb.me/react-invalid-hook-call)') : void 0;\n  {\n    !!isInHookUserCodeInDev ? warning$1(false, 'Do not call Hooks inside useEffect(...), useMemo(...), or other built-in Hooks. ' + 'You can only call Hooks at the top level of your React function. ' + 'For more information, see ' + 'https://fb.me/rules-of-hooks') : void 0;\n  }\n  return currentlyRenderingComponent;\n}\n\nfunction areHookInputsEqual(nextDeps, prevDeps) {\n  if (prevDeps === null) {\n    {\n      warning$1(false, '%s received a final argument during this render, but not during ' + 'the previous render. Even though the final argument is optional, ' + 'its type cannot change between renders.', currentHookNameInDev);\n    }\n    return false;\n  }\n\n  {\n    // Don't bother comparing lengths in prod because these arrays should be\n    // passed inline.\n    if (nextDeps.length !== prevDeps.length) {\n      warning$1(false, 'The final argument passed to %s changed size between renders. The ' + 'order and size of this array must remain constant.\\n\\n' + 'Previous: %s\\n' + 'Incoming: %s', currentHookNameInDev, '[' + nextDeps.join(', ') + ']', '[' + prevDeps.join(', ') + ']');\n    }\n  }\n  for (var i = 0; i < prevDeps.length && i < nextDeps.length; i++) {\n    if (is(nextDeps[i], prevDeps[i])) {\n      continue;\n    }\n    return false;\n  }\n  return true;\n}\n\nfunction createHook() {\n  if (numberOfReRenders > 0) {\n    invariant(false, 'Rendered more hooks than during the previous render');\n  }\n  return {\n    memoizedState: null,\n    queue: null,\n    next: null\n  };\n}\n\nfunction createWorkInProgressHook() {\n  if (workInProgressHook === null) {\n    // This is the first hook in the list\n    if (firstWorkInProgressHook === null) {\n      isReRender = false;\n      firstWorkInProgressHook = workInProgressHook = createHook();\n    } else {\n      // There's already a work-in-progress. Reuse it.\n      isReRender = true;\n      workInProgressHook = firstWorkInProgressHook;\n    }\n  } else {\n    if (workInProgressHook.next === null) {\n      isReRender = false;\n      // Append to the end of the list\n      workInProgressHook = workInProgressHook.next = createHook();\n    } else {\n      // There's already a work-in-progress. Reuse it.\n      isReRender = true;\n      workInProgressHook = workInProgressHook.next;\n    }\n  }\n  return workInProgressHook;\n}\n\nfunction prepareToUseHooks(componentIdentity) {\n  currentlyRenderingComponent = componentIdentity;\n  {\n    isInHookUserCodeInDev = false;\n  }\n\n  // The following should have already been reset\n  // didScheduleRenderPhaseUpdate = false;\n  // firstWorkInProgressHook = null;\n  // numberOfReRenders = 0;\n  // renderPhaseUpdates = null;\n  // workInProgressHook = null;\n}\n\nfunction finishHooks(Component, props, children, refOrContext) {\n  // This must be called after every function component to prevent hooks from\n  // being used in classes.\n\n  while (didScheduleRenderPhaseUpdate) {\n    // Updates were scheduled during the render phase. They are stored in\n    // the `renderPhaseUpdates` map. Call the component again, reusing the\n    // work-in-progress hooks and applying the additional updates on top. Keep\n    // restarting until no more updates are scheduled.\n    didScheduleRenderPhaseUpdate = false;\n    numberOfReRenders += 1;\n\n    // Start over from the beginning of the list\n    workInProgressHook = null;\n\n    children = Component(props, refOrContext);\n  }\n  currentlyRenderingComponent = null;\n  firstWorkInProgressHook = null;\n  numberOfReRenders = 0;\n  renderPhaseUpdates = null;\n  workInProgressHook = null;\n  {\n    isInHookUserCodeInDev = false;\n  }\n\n  // These were reset above\n  // currentlyRenderingComponent = null;\n  // didScheduleRenderPhaseUpdate = false;\n  // firstWorkInProgressHook = null;\n  // numberOfReRenders = 0;\n  // renderPhaseUpdates = null;\n  // workInProgressHook = null;\n\n  return children;\n}\n\nfunction readContext(context, observedBits) {\n  var threadID = currentThreadID;\n  validateContextBounds(context, threadID);\n  {\n    !!isInHookUserCodeInDev ? warning$1(false, 'Context can only be read while React is rendering. ' + 'In classes, you can read it in the render method or getDerivedStateFromProps. ' + 'In function components, you can read it directly in the function body, but not ' + 'inside Hooks like useReducer() or useMemo().') : void 0;\n  }\n  return context[threadID];\n}\n\nfunction useContext(context, observedBits) {\n  {\n    currentHookNameInDev = 'useContext';\n  }\n  resolveCurrentlyRenderingComponent();\n  var threadID = currentThreadID;\n  validateContextBounds(context, threadID);\n  return context[threadID];\n}\n\nfunction basicStateReducer(state, action) {\n  return typeof action === 'function' ? action(state) : action;\n}\n\nfunction useState(initialState) {\n  {\n    currentHookNameInDev = 'useState';\n  }\n  return useReducer(basicStateReducer,\n  // useReducer has a special case to support lazy useState initializers\n  initialState);\n}\n\nfunction useReducer(reducer, initialArg, init) {\n  {\n    if (reducer !== basicStateReducer) {\n      currentHookNameInDev = 'useReducer';\n    }\n  }\n  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n  workInProgressHook = createWorkInProgressHook();\n  if (isReRender) {\n    // This is a re-render. Apply the new render phase updates to the previous\n    var _queue = workInProgressHook.queue;\n    var _dispatch = _queue.dispatch;\n    if (renderPhaseUpdates !== null) {\n      // Render phase updates are stored in a map of queue -> linked list\n      var firstRenderPhaseUpdate = renderPhaseUpdates.get(_queue);\n      if (firstRenderPhaseUpdate !== undefined) {\n        renderPhaseUpdates.delete(_queue);\n        var newState = workInProgressHook.memoizedState;\n        var update = firstRenderPhaseUpdate;\n        do {\n          // Process this render phase update. We don't have to check the\n          // priority because it will always be the same as the current\n          // render's.\n          var _action = update.action;\n          {\n            isInHookUserCodeInDev = true;\n          }\n          newState = reducer(newState, _action);\n          {\n            isInHookUserCodeInDev = false;\n          }\n          update = update.next;\n        } while (update !== null);\n\n        workInProgressHook.memoizedState = newState;\n\n        return [newState, _dispatch];\n      }\n    }\n    return [workInProgressHook.memoizedState, _dispatch];\n  } else {\n    {\n      isInHookUserCodeInDev = true;\n    }\n    var initialState = void 0;\n    if (reducer === basicStateReducer) {\n      // Special case for `useState`.\n      initialState = typeof initialArg === 'function' ? initialArg() : initialArg;\n    } else {\n      initialState = init !== undefined ? init(initialArg) : initialArg;\n    }\n    {\n      isInHookUserCodeInDev = false;\n    }\n    workInProgressHook.memoizedState = initialState;\n    var _queue2 = workInProgressHook.queue = {\n      last: null,\n      dispatch: null\n    };\n    var _dispatch2 = _queue2.dispatch = dispatchAction.bind(null, currentlyRenderingComponent, _queue2);\n    return [workInProgressHook.memoizedState, _dispatch2];\n  }\n}\n\nfunction useMemo(nextCreate, deps) {\n  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n  workInProgressHook = createWorkInProgressHook();\n\n  var nextDeps = deps === undefined ? null : deps;\n\n  if (workInProgressHook !== null) {\n    var prevState = workInProgressHook.memoizedState;\n    if (prevState !== null) {\n      if (nextDeps !== null) {\n        var prevDeps = prevState[1];\n        if (areHookInputsEqual(nextDeps, prevDeps)) {\n          return prevState[0];\n        }\n      }\n    }\n  }\n\n  {\n    isInHookUserCodeInDev = true;\n  }\n  var nextValue = nextCreate();\n  {\n    isInHookUserCodeInDev = false;\n  }\n  workInProgressHook.memoizedState = [nextValue, nextDeps];\n  return nextValue;\n}\n\nfunction useRef(initialValue) {\n  currentlyRenderingComponent = resolveCurrentlyRenderingComponent();\n  workInProgressHook = createWorkInProgressHook();\n  var previousRef = workInProgressHook.memoizedState;\n  if (previousRef === null) {\n    var ref = { current: initialValue };\n    {\n      Object.seal(ref);\n    }\n    workInProgressHook.memoizedState = ref;\n    return ref;\n  } else {\n    return previousRef;\n  }\n}\n\nfunction useLayoutEffect(create, inputs) {\n  {\n    currentHookNameInDev = 'useLayoutEffect';\n  }\n  warning$1(false, 'useLayoutEffect does nothing on the server, because its effect cannot ' + \"be encoded into the server renderer's output format. This will lead \" + 'to a mismatch between the initial, non-hydrated UI and the intended ' + 'UI. To avoid this, useLayoutEffect should only be used in ' + 'components that render exclusively on the client.');\n}\n\nfunction dispatchAction(componentIdentity, queue, action) {\n  !(numberOfReRenders < RE_RENDER_LIMIT) ? invariant(false, 'Too many re-renders. React limits the number of renders to prevent an infinite loop.') : void 0;\n\n  if (componentIdentity === currentlyRenderingComponent) {\n    // This is a render phase update. Stash it in a lazily-created map of\n    // queue -> linked list of updates. After this render pass, we'll restart\n    // and apply the stashed updates on top of the work-in-progress hook.\n    didScheduleRenderPhaseUpdate = true;\n    var update = {\n      action: action,\n      next: null\n    };\n    if (renderPhaseUpdates === null) {\n      renderPhaseUpdates = new Map();\n    }\n    var firstRenderPhaseUpdate = renderPhaseUpdates.get(queue);\n    if (firstRenderPhaseUpdate === undefined) {\n      renderPhaseUpdates.set(queue, update);\n    } else {\n      // Append the update to the end of the list.\n      var lastRenderPhaseUpdate = firstRenderPhaseUpdate;\n      while (lastRenderPhaseUpdate.next !== null) {\n        lastRenderPhaseUpdate = lastRenderPhaseUpdate.next;\n      }\n      lastRenderPhaseUpdate.next = update;\n    }\n  } else {\n    // This means an update has happened after the function component has\n    // returned. On the server this is a no-op. In React Fiber, the update\n    // would be scheduled for a future render.\n  }\n}\n\nfunction useCallback(callback, deps) {\n  // Callbacks are passed as they are in the server environment.\n  return callback;\n}\n\nfunction noop() {}\n\nvar currentThreadID = 0;\n\nfunction setCurrentThreadID(threadID) {\n  currentThreadID = threadID;\n}\n\nvar Dispatcher = {\n  readContext: readContext,\n  useContext: useContext,\n  useMemo: useMemo,\n  useReducer: useReducer,\n  useRef: useRef,\n  useState: useState,\n  useLayoutEffect: useLayoutEffect,\n  useCallback: useCallback,\n  // useImperativeHandle is not run in the server environment\n  useImperativeHandle: noop,\n  // Effects are not run in the server environment.\n  useEffect: noop,\n  // Debugging effect\n  useDebugValue: noop\n};\n\nvar HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\nvar MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\nvar SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n\nvar Namespaces = {\n  html: HTML_NAMESPACE,\n  mathml: MATH_NAMESPACE,\n  svg: SVG_NAMESPACE\n};\n\n// Assumes there is no parent namespace.\nfunction getIntrinsicNamespace(type) {\n  switch (type) {\n    case 'svg':\n      return SVG_NAMESPACE;\n    case 'math':\n      return MATH_NAMESPACE;\n    default:\n      return HTML_NAMESPACE;\n  }\n}\n\nfunction getChildNamespace(parentNamespace, type) {\n  if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {\n    // No (or default) parent namespace: potential entry point.\n    return getIntrinsicNamespace(type);\n  }\n  if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {\n    // We're leaving SVG.\n    return HTML_NAMESPACE;\n  }\n  // By default, pass namespace below.\n  return parentNamespace;\n}\n\nvar ReactDebugCurrentFrame$2 = null;\n\nvar ReactControlledValuePropTypes = {\n  checkPropTypes: null\n};\n\n{\n  ReactDebugCurrentFrame$2 = ReactSharedInternals.ReactDebugCurrentFrame;\n\n  var hasReadOnlyValue = {\n    button: true,\n    checkbox: true,\n    image: true,\n    hidden: true,\n    radio: true,\n    reset: true,\n    submit: true\n  };\n\n  var propTypes = {\n    value: function (props, propName, componentName) {\n      if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n        return null;\n      }\n      return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    },\n    checked: function (props, propName, componentName) {\n      if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {\n        return null;\n      }\n      return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');\n    }\n  };\n\n  /**\n   * Provide a linked `value` attribute for controlled forms. You should not use\n   * this outside of the ReactDOM controlled form components.\n   */\n  ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {\n    checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$2.getStackAddendum);\n  };\n}\n\n// For HTML, certain tags should omit their close tag. We keep a whitelist for\n// those special-case tags.\n\nvar omittedCloseTags = {\n  area: true,\n  base: true,\n  br: true,\n  col: true,\n  embed: true,\n  hr: true,\n  img: true,\n  input: true,\n  keygen: true,\n  link: true,\n  meta: true,\n  param: true,\n  source: true,\n  track: true,\n  wbr: true\n  // NOTE: menuitem's close tag should be omitted, but that causes problems.\n};\n\n// For HTML, certain tags cannot have children. This has the same purpose as\n// `omittedCloseTags` except that `menuitem` should still have its closing tag.\n\nvar voidElementTags = _assign({\n  menuitem: true\n}, omittedCloseTags);\n\n// TODO: We can remove this if we add invariantWithStack()\n// or add stack by default to invariants where possible.\nvar HTML = '__html';\n\nvar ReactDebugCurrentFrame$3 = null;\n{\n  ReactDebugCurrentFrame$3 = ReactSharedInternals.ReactDebugCurrentFrame;\n}\n\nfunction assertValidProps(tag, props) {\n  if (!props) {\n    return;\n  }\n  // Note the use of `==` which checks for null or undefined.\n  if (voidElementTags[tag]) {\n    !(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n  }\n  if (props.dangerouslySetInnerHTML != null) {\n    !(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;\n    !(typeof props.dangerouslySetInnerHTML === 'object' && HTML in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;\n  }\n  {\n    !(props.suppressContentEditableWarning || !props.contentEditable || props.children == null) ? warning$1(false, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.') : void 0;\n  }\n  !(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \\'em\\'}} when using JSX.%s', ReactDebugCurrentFrame$3.getStackAddendum()) : void 0;\n}\n\n/**\n * CSS properties which accept numbers but are not in units of \"px\".\n */\nvar isUnitlessNumber = {\n  animationIterationCount: true,\n  borderImageOutset: true,\n  borderImageSlice: true,\n  borderImageWidth: true,\n  boxFlex: true,\n  boxFlexGroup: true,\n  boxOrdinalGroup: true,\n  columnCount: true,\n  columns: true,\n  flex: true,\n  flexGrow: true,\n  flexPositive: true,\n  flexShrink: true,\n  flexNegative: true,\n  flexOrder: true,\n  gridArea: true,\n  gridRow: true,\n  gridRowEnd: true,\n  gridRowSpan: true,\n  gridRowStart: true,\n  gridColumn: true,\n  gridColumnEnd: true,\n  gridColumnSpan: true,\n  gridColumnStart: true,\n  fontWeight: true,\n  lineClamp: true,\n  lineHeight: true,\n  opacity: true,\n  order: true,\n  orphans: true,\n  tabSize: true,\n  widows: true,\n  zIndex: true,\n  zoom: true,\n\n  // SVG-related properties\n  fillOpacity: true,\n  floodOpacity: true,\n  stopOpacity: true,\n  strokeDasharray: true,\n  strokeDashoffset: true,\n  strokeMiterlimit: true,\n  strokeOpacity: true,\n  strokeWidth: true\n};\n\n/**\n * @param {string} prefix vendor-specific prefix, eg: Webkit\n * @param {string} key style name, eg: transitionDuration\n * @return {string} style name prefixed with `prefix`, properly camelCased, eg:\n * WebkitTransitionDuration\n */\nfunction prefixKey(prefix, key) {\n  return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n}\n\n/**\n * Support style names that may come passed in prefixed by adding permutations\n * of vendor prefixes.\n */\nvar prefixes = ['Webkit', 'ms', 'Moz', 'O'];\n\n// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an\n// infinite loop, because it iterates over the newly added props too.\nObject.keys(isUnitlessNumber).forEach(function (prop) {\n  prefixes.forEach(function (prefix) {\n    isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];\n  });\n});\n\n/**\n * Convert a value into the proper css writable value. The style name `name`\n * should be logical (no hyphens), as specified\n * in `CSSProperty.isUnitlessNumber`.\n *\n * @param {string} name CSS property name such as `topMargin`.\n * @param {*} value CSS property value such as `10px`.\n * @return {string} Normalized style value with dimensions applied.\n */\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n  // Note that we've removed escapeTextForBrowser() calls here since the\n  // whole string will be escaped when the attribute is injected into\n  // the markup. If you provide unsafe user data here they can inject\n  // arbitrary CSS which may be problematic (I couldn't repro this):\n  // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet\n  // http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/\n  // This is not an XSS hole but instead a potential CSS injection issue\n  // which has lead to a greater discussion about how we're going to\n  // trust URLs moving forward. See #2115901\n\n  var isEmpty = value == null || typeof value === 'boolean' || value === '';\n  if (isEmpty) {\n    return '';\n  }\n\n  if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n    return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n  }\n\n  return ('' + value).trim();\n}\n\nvar uppercasePattern = /([A-Z])/g;\nvar msPattern = /^ms-/;\n\n/**\n * Hyphenates a camelcased CSS property name, for example:\n *\n *   > hyphenateStyleName('backgroundColor')\n *   < \"background-color\"\n *   > hyphenateStyleName('MozTransition')\n *   < \"-moz-transition\"\n *   > hyphenateStyleName('msTransition')\n *   < \"-ms-transition\"\n *\n * As Modernizr suggests (http://modernizr.com/docs/#prefixed), an `ms` prefix\n * is converted to `-ms-`.\n */\nfunction hyphenateStyleName(name) {\n  return name.replace(uppercasePattern, '-$1').toLowerCase().replace(msPattern, '-ms-');\n}\n\nfunction isCustomComponent(tagName, props) {\n  if (tagName.indexOf('-') === -1) {\n    return typeof props.is === 'string';\n  }\n  switch (tagName) {\n    // These are reserved SVG and MathML elements.\n    // We don't mind this whitelist too much because we expect it to never grow.\n    // The alternative is to track the namespace in a few places which is convoluted.\n    // https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts\n    case 'annotation-xml':\n    case 'color-profile':\n    case 'font-face':\n    case 'font-face-src':\n    case 'font-face-uri':\n    case 'font-face-format':\n    case 'font-face-name':\n    case 'missing-glyph':\n      return false;\n    default:\n      return true;\n  }\n}\n\nvar warnValidStyle = function () {};\n\n{\n  // 'msTransform' is correct, but the other prefixes should be capitalized\n  var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;\n  var msPattern$1 = /^-ms-/;\n  var hyphenPattern = /-(.)/g;\n\n  // style values shouldn't contain a semicolon\n  var badStyleValueWithSemicolonPattern = /;\\s*$/;\n\n  var warnedStyleNames = {};\n  var warnedStyleValues = {};\n  var warnedForNaNValue = false;\n  var warnedForInfinityValue = false;\n\n  var camelize = function (string) {\n    return string.replace(hyphenPattern, function (_, character) {\n      return character.toUpperCase();\n    });\n  };\n\n  var warnHyphenatedStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    warning$1(false, 'Unsupported style property %s. Did you mean %s?', name,\n    // As Andi Smith suggests\n    // (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix\n    // is converted to lowercase `ms`.\n    camelize(name.replace(msPattern$1, 'ms-')));\n  };\n\n  var warnBadVendoredStyleName = function (name) {\n    if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {\n      return;\n    }\n\n    warnedStyleNames[name] = true;\n    warning$1(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?', name, name.charAt(0).toUpperCase() + name.slice(1));\n  };\n\n  var warnStyleValueWithSemicolon = function (name, value) {\n    if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {\n      return;\n    }\n\n    warnedStyleValues[value] = true;\n    warning$1(false, \"Style property values shouldn't contain a semicolon. \" + 'Try \"%s: %s\" instead.', name, value.replace(badStyleValueWithSemicolonPattern, ''));\n  };\n\n  var warnStyleValueIsNaN = function (name, value) {\n    if (warnedForNaNValue) {\n      return;\n    }\n\n    warnedForNaNValue = true;\n    warning$1(false, '`NaN` is an invalid value for the `%s` css style property.', name);\n  };\n\n  var warnStyleValueIsInfinity = function (name, value) {\n    if (warnedForInfinityValue) {\n      return;\n    }\n\n    warnedForInfinityValue = true;\n    warning$1(false, '`Infinity` is an invalid value for the `%s` css style property.', name);\n  };\n\n  warnValidStyle = function (name, value) {\n    if (name.indexOf('-') > -1) {\n      warnHyphenatedStyleName(name);\n    } else if (badVendoredStyleNamePattern.test(name)) {\n      warnBadVendoredStyleName(name);\n    } else if (badStyleValueWithSemicolonPattern.test(value)) {\n      warnStyleValueWithSemicolon(name, value);\n    }\n\n    if (typeof value === 'number') {\n      if (isNaN(value)) {\n        warnStyleValueIsNaN(name, value);\n      } else if (!isFinite(value)) {\n        warnStyleValueIsInfinity(name, value);\n      }\n    }\n  };\n}\n\nvar warnValidStyle$1 = warnValidStyle;\n\nvar ariaProperties = {\n  'aria-current': 0, // state\n  'aria-details': 0,\n  'aria-disabled': 0, // state\n  'aria-hidden': 0, // state\n  'aria-invalid': 0, // state\n  'aria-keyshortcuts': 0,\n  'aria-label': 0,\n  'aria-roledescription': 0,\n  // Widget Attributes\n  'aria-autocomplete': 0,\n  'aria-checked': 0,\n  'aria-expanded': 0,\n  'aria-haspopup': 0,\n  'aria-level': 0,\n  'aria-modal': 0,\n  'aria-multiline': 0,\n  'aria-multiselectable': 0,\n  'aria-orientation': 0,\n  'aria-placeholder': 0,\n  'aria-pressed': 0,\n  'aria-readonly': 0,\n  'aria-required': 0,\n  'aria-selected': 0,\n  'aria-sort': 0,\n  'aria-valuemax': 0,\n  'aria-valuemin': 0,\n  'aria-valuenow': 0,\n  'aria-valuetext': 0,\n  // Live Region Attributes\n  'aria-atomic': 0,\n  'aria-busy': 0,\n  'aria-live': 0,\n  'aria-relevant': 0,\n  // Drag-and-Drop Attributes\n  'aria-dropeffect': 0,\n  'aria-grabbed': 0,\n  // Relationship Attributes\n  'aria-activedescendant': 0,\n  'aria-colcount': 0,\n  'aria-colindex': 0,\n  'aria-colspan': 0,\n  'aria-controls': 0,\n  'aria-describedby': 0,\n  'aria-errormessage': 0,\n  'aria-flowto': 0,\n  'aria-labelledby': 0,\n  'aria-owns': 0,\n  'aria-posinset': 0,\n  'aria-rowcount': 0,\n  'aria-rowindex': 0,\n  'aria-rowspan': 0,\n  'aria-setsize': 0\n};\n\nvar warnedProperties = {};\nvar rARIA = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\nvar rARIACamel = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\nvar hasOwnProperty$2 = Object.prototype.hasOwnProperty;\n\nfunction validateProperty(tagName, name) {\n  if (hasOwnProperty$2.call(warnedProperties, name) && warnedProperties[name]) {\n    return true;\n  }\n\n  if (rARIACamel.test(name)) {\n    var ariaName = 'aria-' + name.slice(4).toLowerCase();\n    var correctName = ariaProperties.hasOwnProperty(ariaName) ? ariaName : null;\n\n    // If this is an aria-* attribute, but is not listed in the known DOM\n    // DOM properties, then it is an invalid aria-* attribute.\n    if (correctName == null) {\n      warning$1(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.', name);\n      warnedProperties[name] = true;\n      return true;\n    }\n    // aria-* attributes should be lowercase; suggest the lowercase version.\n    if (name !== correctName) {\n      warning$1(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?', name, correctName);\n      warnedProperties[name] = true;\n      return true;\n    }\n  }\n\n  if (rARIA.test(name)) {\n    var lowerCasedName = name.toLowerCase();\n    var standardName = ariaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;\n\n    // If this is an aria-* attribute, but is not listed in the known DOM\n    // DOM properties, then it is an invalid aria-* attribute.\n    if (standardName == null) {\n      warnedProperties[name] = true;\n      return false;\n    }\n    // aria-* attributes should be lowercase; suggest the lowercase version.\n    if (name !== standardName) {\n      warning$1(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?', name, standardName);\n      warnedProperties[name] = true;\n      return true;\n    }\n  }\n\n  return true;\n}\n\nfunction warnInvalidARIAProps(type, props) {\n  var invalidProps = [];\n\n  for (var key in props) {\n    var isValid = validateProperty(type, key);\n    if (!isValid) {\n      invalidProps.push(key);\n    }\n  }\n\n  var unknownPropString = invalidProps.map(function (prop) {\n    return '`' + prop + '`';\n  }).join(', ');\n\n  if (invalidProps.length === 1) {\n    warning$1(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n  } else if (invalidProps.length > 1) {\n    warning$1(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop', unknownPropString, type);\n  }\n}\n\nfunction validateProperties(type, props) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n  warnInvalidARIAProps(type, props);\n}\n\nvar didWarnValueNull = false;\n\nfunction validateProperties$1(type, props) {\n  if (type !== 'input' && type !== 'textarea' && type !== 'select') {\n    return;\n  }\n\n  if (props != null && props.value === null && !didWarnValueNull) {\n    didWarnValueNull = true;\n    if (type === 'select' && props.multiple) {\n      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty array when `multiple` is set to `true` ' + 'to clear the component or `undefined` for uncontrolled components.', type);\n    } else {\n      warning$1(false, '`value` prop on `%s` should not be null. ' + 'Consider using an empty string to clear the component or `undefined` ' + 'for uncontrolled components.', type);\n    }\n  }\n}\n\n/**\n * Registers plugins so that they can extract and dispatch events.\n *\n * @see {EventPluginHub}\n */\n\n/**\n * Ordered list of injected plugins.\n */\n\n\n/**\n * Mapping from event name to dispatch config\n */\n\n\n/**\n * Mapping from registration name to plugin module\n */\nvar registrationNameModules = {};\n\n/**\n * Mapping from registration name to event name\n */\n\n\n/**\n * Mapping from lowercase registration names to the properly cased version,\n * used to warn in the case of missing event handlers. Available\n * only in true.\n * @type {Object}\n */\nvar possibleRegistrationNames = {};\n// Trust the developer to only use possibleRegistrationNames in true\n\n/**\n * Injects an ordering of plugins (by plugin name). This allows the ordering\n * to be decoupled from injection of the actual plugins so that ordering is\n * always deterministic regardless of packaging, on-the-fly injection, etc.\n *\n * @param {array} InjectedEventPluginOrder\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginOrder}\n */\n\n\n/**\n * Injects plugins to be used by `EventPluginHub`. The plugin names must be\n * in the ordering injected by `injectEventPluginOrder`.\n *\n * Plugins can be injected as part of page initialization or on-the-fly.\n *\n * @param {object} injectedNamesToPlugins Map from names to plugin modules.\n * @internal\n * @see {EventPluginHub.injection.injectEventPluginsByName}\n */\n\n// When adding attributes to the HTML or SVG whitelist, be sure to\n// also add them to this module to ensure casing and incorrect name\n// warnings.\nvar possibleStandardNames = {\n  // HTML\n  accept: 'accept',\n  acceptcharset: 'acceptCharset',\n  'accept-charset': 'acceptCharset',\n  accesskey: 'accessKey',\n  action: 'action',\n  allowfullscreen: 'allowFullScreen',\n  alt: 'alt',\n  as: 'as',\n  async: 'async',\n  autocapitalize: 'autoCapitalize',\n  autocomplete: 'autoComplete',\n  autocorrect: 'autoCorrect',\n  autofocus: 'autoFocus',\n  autoplay: 'autoPlay',\n  autosave: 'autoSave',\n  capture: 'capture',\n  cellpadding: 'cellPadding',\n  cellspacing: 'cellSpacing',\n  challenge: 'challenge',\n  charset: 'charSet',\n  checked: 'checked',\n  children: 'children',\n  cite: 'cite',\n  class: 'className',\n  classid: 'classID',\n  classname: 'className',\n  cols: 'cols',\n  colspan: 'colSpan',\n  content: 'content',\n  contenteditable: 'contentEditable',\n  contextmenu: 'contextMenu',\n  controls: 'controls',\n  controlslist: 'controlsList',\n  coords: 'coords',\n  crossorigin: 'crossOrigin',\n  dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',\n  data: 'data',\n  datetime: 'dateTime',\n  default: 'default',\n  defaultchecked: 'defaultChecked',\n  defaultvalue: 'defaultValue',\n  defer: 'defer',\n  dir: 'dir',\n  disabled: 'disabled',\n  download: 'download',\n  draggable: 'draggable',\n  enctype: 'encType',\n  for: 'htmlFor',\n  form: 'form',\n  formmethod: 'formMethod',\n  formaction: 'formAction',\n  formenctype: 'formEncType',\n  formnovalidate: 'formNoValidate',\n  formtarget: 'formTarget',\n  frameborder: 'frameBorder',\n  headers: 'headers',\n  height: 'height',\n  hidden: 'hidden',\n  high: 'high',\n  href: 'href',\n  hreflang: 'hrefLang',\n  htmlfor: 'htmlFor',\n  httpequiv: 'httpEquiv',\n  'http-equiv': 'httpEquiv',\n  icon: 'icon',\n  id: 'id',\n  innerhtml: 'innerHTML',\n  inputmode: 'inputMode',\n  integrity: 'integrity',\n  is: 'is',\n  itemid: 'itemID',\n  itemprop: 'itemProp',\n  itemref: 'itemRef',\n  itemscope: 'itemScope',\n  itemtype: 'itemType',\n  keyparams: 'keyParams',\n  keytype: 'keyType',\n  kind: 'kind',\n  label: 'label',\n  lang: 'lang',\n  list: 'list',\n  loop: 'loop',\n  low: 'low',\n  manifest: 'manifest',\n  marginwidth: 'marginWidth',\n  marginheight: 'marginHeight',\n  max: 'max',\n  maxlength: 'maxLength',\n  media: 'media',\n  mediagroup: 'mediaGroup',\n  method: 'method',\n  min: 'min',\n  minlength: 'minLength',\n  multiple: 'multiple',\n  muted: 'muted',\n  name: 'name',\n  nomodule: 'noModule',\n  nonce: 'nonce',\n  novalidate: 'noValidate',\n  open: 'open',\n  optimum: 'optimum',\n  pattern: 'pattern',\n  placeholder: 'placeholder',\n  playsinline: 'playsInline',\n  poster: 'poster',\n  preload: 'preload',\n  profile: 'profile',\n  radiogroup: 'radioGroup',\n  readonly: 'readOnly',\n  referrerpolicy: 'referrerPolicy',\n  rel: 'rel',\n  required: 'required',\n  reversed: 'reversed',\n  role: 'role',\n  rows: 'rows',\n  rowspan: 'rowSpan',\n  sandbox: 'sandbox',\n  scope: 'scope',\n  scoped: 'scoped',\n  scrolling: 'scrolling',\n  seamless: 'seamless',\n  selected: 'selected',\n  shape: 'shape',\n  size: 'size',\n  sizes: 'sizes',\n  span: 'span',\n  spellcheck: 'spellCheck',\n  src: 'src',\n  srcdoc: 'srcDoc',\n  srclang: 'srcLang',\n  srcset: 'srcSet',\n  start: 'start',\n  step: 'step',\n  style: 'style',\n  summary: 'summary',\n  tabindex: 'tabIndex',\n  target: 'target',\n  title: 'title',\n  type: 'type',\n  usemap: 'useMap',\n  value: 'value',\n  width: 'width',\n  wmode: 'wmode',\n  wrap: 'wrap',\n\n  // SVG\n  about: 'about',\n  accentheight: 'accentHeight',\n  'accent-height': 'accentHeight',\n  accumulate: 'accumulate',\n  additive: 'additive',\n  alignmentbaseline: 'alignmentBaseline',\n  'alignment-baseline': 'alignmentBaseline',\n  allowreorder: 'allowReorder',\n  alphabetic: 'alphabetic',\n  amplitude: 'amplitude',\n  arabicform: 'arabicForm',\n  'arabic-form': 'arabicForm',\n  ascent: 'ascent',\n  attributename: 'attributeName',\n  attributetype: 'attributeType',\n  autoreverse: 'autoReverse',\n  azimuth: 'azimuth',\n  basefrequency: 'baseFrequency',\n  baselineshift: 'baselineShift',\n  'baseline-shift': 'baselineShift',\n  baseprofile: 'baseProfile',\n  bbox: 'bbox',\n  begin: 'begin',\n  bias: 'bias',\n  by: 'by',\n  calcmode: 'calcMode',\n  capheight: 'capHeight',\n  'cap-height': 'capHeight',\n  clip: 'clip',\n  clippath: 'clipPath',\n  'clip-path': 'clipPath',\n  clippathunits: 'clipPathUnits',\n  cliprule: 'clipRule',\n  'clip-rule': 'clipRule',\n  color: 'color',\n  colorinterpolation: 'colorInterpolation',\n  'color-interpolation': 'colorInterpolation',\n  colorinterpolationfilters: 'colorInterpolationFilters',\n  'color-interpolation-filters': 'colorInterpolationFilters',\n  colorprofile: 'colorProfile',\n  'color-profile': 'colorProfile',\n  colorrendering: 'colorRendering',\n  'color-rendering': 'colorRendering',\n  contentscripttype: 'contentScriptType',\n  contentstyletype: 'contentStyleType',\n  cursor: 'cursor',\n  cx: 'cx',\n  cy: 'cy',\n  d: 'd',\n  datatype: 'datatype',\n  decelerate: 'decelerate',\n  descent: 'descent',\n  diffuseconstant: 'diffuseConstant',\n  direction: 'direction',\n  display: 'display',\n  divisor: 'divisor',\n  dominantbaseline: 'dominantBaseline',\n  'dominant-baseline': 'dominantBaseline',\n  dur: 'dur',\n  dx: 'dx',\n  dy: 'dy',\n  edgemode: 'edgeMode',\n  elevation: 'elevation',\n  enablebackground: 'enableBackground',\n  'enable-background': 'enableBackground',\n  end: 'end',\n  exponent: 'exponent',\n  externalresourcesrequired: 'externalResourcesRequired',\n  fill: 'fill',\n  fillopacity: 'fillOpacity',\n  'fill-opacity': 'fillOpacity',\n  fillrule: 'fillRule',\n  'fill-rule': 'fillRule',\n  filter: 'filter',\n  filterres: 'filterRes',\n  filterunits: 'filterUnits',\n  floodopacity: 'floodOpacity',\n  'flood-opacity': 'floodOpacity',\n  floodcolor: 'floodColor',\n  'flood-color': 'floodColor',\n  focusable: 'focusable',\n  fontfamily: 'fontFamily',\n  'font-family': 'fontFamily',\n  fontsize: 'fontSize',\n  'font-size': 'fontSize',\n  fontsizeadjust: 'fontSizeAdjust',\n  'font-size-adjust': 'fontSizeAdjust',\n  fontstretch: 'fontStretch',\n  'font-stretch': 'fontStretch',\n  fontstyle: 'fontStyle',\n  'font-style': 'fontStyle',\n  fontvariant: 'fontVariant',\n  'font-variant': 'fontVariant',\n  fontweight: 'fontWeight',\n  'font-weight': 'fontWeight',\n  format: 'format',\n  from: 'from',\n  fx: 'fx',\n  fy: 'fy',\n  g1: 'g1',\n  g2: 'g2',\n  glyphname: 'glyphName',\n  'glyph-name': 'glyphName',\n  glyphorientationhorizontal: 'glyphOrientationHorizontal',\n  'glyph-orientation-horizontal': 'glyphOrientationHorizontal',\n  glyphorientationvertical: 'glyphOrientationVertical',\n  'glyph-orientation-vertical': 'glyphOrientationVertical',\n  glyphref: 'glyphRef',\n  gradienttransform: 'gradientTransform',\n  gradientunits: 'gradientUnits',\n  hanging: 'hanging',\n  horizadvx: 'horizAdvX',\n  'horiz-adv-x': 'horizAdvX',\n  horizoriginx: 'horizOriginX',\n  'horiz-origin-x': 'horizOriginX',\n  ideographic: 'ideographic',\n  imagerendering: 'imageRendering',\n  'image-rendering': 'imageRendering',\n  in2: 'in2',\n  in: 'in',\n  inlist: 'inlist',\n  intercept: 'intercept',\n  k1: 'k1',\n  k2: 'k2',\n  k3: 'k3',\n  k4: 'k4',\n  k: 'k',\n  kernelmatrix: 'kernelMatrix',\n  kernelunitlength: 'kernelUnitLength',\n  kerning: 'kerning',\n  keypoints: 'keyPoints',\n  keysplines: 'keySplines',\n  keytimes: 'keyTimes',\n  lengthadjust: 'lengthAdjust',\n  letterspacing: 'letterSpacing',\n  'letter-spacing': 'letterSpacing',\n  lightingcolor: 'lightingColor',\n  'lighting-color': 'lightingColor',\n  limitingconeangle: 'limitingConeAngle',\n  local: 'local',\n  markerend: 'markerEnd',\n  'marker-end': 'markerEnd',\n  markerheight: 'markerHeight',\n  markermid: 'markerMid',\n  'marker-mid': 'markerMid',\n  markerstart: 'markerStart',\n  'marker-start': 'markerStart',\n  markerunits: 'markerUnits',\n  markerwidth: 'markerWidth',\n  mask: 'mask',\n  maskcontentunits: 'maskContentUnits',\n  maskunits: 'maskUnits',\n  mathematical: 'mathematical',\n  mode: 'mode',\n  numoctaves: 'numOctaves',\n  offset: 'offset',\n  opacity: 'opacity',\n  operator: 'operator',\n  order: 'order',\n  orient: 'orient',\n  orientation: 'orientation',\n  origin: 'origin',\n  overflow: 'overflow',\n  overlineposition: 'overlinePosition',\n  'overline-position': 'overlinePosition',\n  overlinethickness: 'overlineThickness',\n  'overline-thickness': 'overlineThickness',\n  paintorder: 'paintOrder',\n  'paint-order': 'paintOrder',\n  panose1: 'panose1',\n  'panose-1': 'panose1',\n  pathlength: 'pathLength',\n  patterncontentunits: 'patternContentUnits',\n  patterntransform: 'patternTransform',\n  patternunits: 'patternUnits',\n  pointerevents: 'pointerEvents',\n  'pointer-events': 'pointerEvents',\n  points: 'points',\n  pointsatx: 'pointsAtX',\n  pointsaty: 'pointsAtY',\n  pointsatz: 'pointsAtZ',\n  prefix: 'prefix',\n  preservealpha: 'preserveAlpha',\n  preserveaspectratio: 'preserveAspectRatio',\n  primitiveunits: 'primitiveUnits',\n  property: 'property',\n  r: 'r',\n  radius: 'radius',\n  refx: 'refX',\n  refy: 'refY',\n  renderingintent: 'renderingIntent',\n  'rendering-intent': 'renderingIntent',\n  repeatcount: 'repeatCount',\n  repeatdur: 'repeatDur',\n  requiredextensions: 'requiredExtensions',\n  requiredfeatures: 'requiredFeatures',\n  resource: 'resource',\n  restart: 'restart',\n  result: 'result',\n  results: 'results',\n  rotate: 'rotate',\n  rx: 'rx',\n  ry: 'ry',\n  scale: 'scale',\n  security: 'security',\n  seed: 'seed',\n  shaperendering: 'shapeRendering',\n  'shape-rendering': 'shapeRendering',\n  slope: 'slope',\n  spacing: 'spacing',\n  specularconstant: 'specularConstant',\n  specularexponent: 'specularExponent',\n  speed: 'speed',\n  spreadmethod: 'spreadMethod',\n  startoffset: 'startOffset',\n  stddeviation: 'stdDeviation',\n  stemh: 'stemh',\n  stemv: 'stemv',\n  stitchtiles: 'stitchTiles',\n  stopcolor: 'stopColor',\n  'stop-color': 'stopColor',\n  stopopacity: 'stopOpacity',\n  'stop-opacity': 'stopOpacity',\n  strikethroughposition: 'strikethroughPosition',\n  'strikethrough-position': 'strikethroughPosition',\n  strikethroughthickness: 'strikethroughThickness',\n  'strikethrough-thickness': 'strikethroughThickness',\n  string: 'string',\n  stroke: 'stroke',\n  strokedasharray: 'strokeDasharray',\n  'stroke-dasharray': 'strokeDasharray',\n  strokedashoffset: 'strokeDashoffset',\n  'stroke-dashoffset': 'strokeDashoffset',\n  strokelinecap: 'strokeLinecap',\n  'stroke-linecap': 'strokeLinecap',\n  strokelinejoin: 'strokeLinejoin',\n  'stroke-linejoin': 'strokeLinejoin',\n  strokemiterlimit: 'strokeMiterlimit',\n  'stroke-miterlimit': 'strokeMiterlimit',\n  strokewidth: 'strokeWidth',\n  'stroke-width': 'strokeWidth',\n  strokeopacity: 'strokeOpacity',\n  'stroke-opacity': 'strokeOpacity',\n  suppresscontenteditablewarning: 'suppressContentEditableWarning',\n  suppresshydrationwarning: 'suppressHydrationWarning',\n  surfacescale: 'surfaceScale',\n  systemlanguage: 'systemLanguage',\n  tablevalues: 'tableValues',\n  targetx: 'targetX',\n  targety: 'targetY',\n  textanchor: 'textAnchor',\n  'text-anchor': 'textAnchor',\n  textdecoration: 'textDecoration',\n  'text-decoration': 'textDecoration',\n  textlength: 'textLength',\n  textrendering: 'textRendering',\n  'text-rendering': 'textRendering',\n  to: 'to',\n  transform: 'transform',\n  typeof: 'typeof',\n  u1: 'u1',\n  u2: 'u2',\n  underlineposition: 'underlinePosition',\n  'underline-position': 'underlinePosition',\n  underlinethickness: 'underlineThickness',\n  'underline-thickness': 'underlineThickness',\n  unicode: 'unicode',\n  unicodebidi: 'unicodeBidi',\n  'unicode-bidi': 'unicodeBidi',\n  unicoderange: 'unicodeRange',\n  'unicode-range': 'unicodeRange',\n  unitsperem: 'unitsPerEm',\n  'units-per-em': 'unitsPerEm',\n  unselectable: 'unselectable',\n  valphabetic: 'vAlphabetic',\n  'v-alphabetic': 'vAlphabetic',\n  values: 'values',\n  vectoreffect: 'vectorEffect',\n  'vector-effect': 'vectorEffect',\n  version: 'version',\n  vertadvy: 'vertAdvY',\n  'vert-adv-y': 'vertAdvY',\n  vertoriginx: 'vertOriginX',\n  'vert-origin-x': 'vertOriginX',\n  vertoriginy: 'vertOriginY',\n  'vert-origin-y': 'vertOriginY',\n  vhanging: 'vHanging',\n  'v-hanging': 'vHanging',\n  videographic: 'vIdeographic',\n  'v-ideographic': 'vIdeographic',\n  viewbox: 'viewBox',\n  viewtarget: 'viewTarget',\n  visibility: 'visibility',\n  vmathematical: 'vMathematical',\n  'v-mathematical': 'vMathematical',\n  vocab: 'vocab',\n  widths: 'widths',\n  wordspacing: 'wordSpacing',\n  'word-spacing': 'wordSpacing',\n  writingmode: 'writingMode',\n  'writing-mode': 'writingMode',\n  x1: 'x1',\n  x2: 'x2',\n  x: 'x',\n  xchannelselector: 'xChannelSelector',\n  xheight: 'xHeight',\n  'x-height': 'xHeight',\n  xlinkactuate: 'xlinkActuate',\n  'xlink:actuate': 'xlinkActuate',\n  xlinkarcrole: 'xlinkArcrole',\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkhref: 'xlinkHref',\n  'xlink:href': 'xlinkHref',\n  xlinkrole: 'xlinkRole',\n  'xlink:role': 'xlinkRole',\n  xlinkshow: 'xlinkShow',\n  'xlink:show': 'xlinkShow',\n  xlinktitle: 'xlinkTitle',\n  'xlink:title': 'xlinkTitle',\n  xlinktype: 'xlinkType',\n  'xlink:type': 'xlinkType',\n  xmlbase: 'xmlBase',\n  'xml:base': 'xmlBase',\n  xmllang: 'xmlLang',\n  'xml:lang': 'xmlLang',\n  xmlns: 'xmlns',\n  'xml:space': 'xmlSpace',\n  xmlnsxlink: 'xmlnsXlink',\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlspace: 'xmlSpace',\n  y1: 'y1',\n  y2: 'y2',\n  y: 'y',\n  ychannelselector: 'yChannelSelector',\n  z: 'z',\n  zoomandpan: 'zoomAndPan'\n};\n\nvar validateProperty$1 = function () {};\n\n{\n  var warnedProperties$1 = {};\n  var _hasOwnProperty = Object.prototype.hasOwnProperty;\n  var EVENT_NAME_REGEX = /^on./;\n  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n  validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n    if (_hasOwnProperty.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n      return true;\n    }\n\n    var lowerCasedName = name.toLowerCase();\n    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n      warning$1(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // We can't rely on the event system being injected on the server.\n    if (canUseEventSystem) {\n      if (registrationNameModules.hasOwnProperty(name)) {\n        return true;\n      }\n      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n      if (registrationName != null) {\n        warning$1(false, 'Invalid event handler property `%s`. Did you mean `%s`?', name, registrationName);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n      if (EVENT_NAME_REGEX.test(name)) {\n        warning$1(false, 'Unknown event handler property `%s`. It will be ignored.', name);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (EVENT_NAME_REGEX.test(name)) {\n      // If no event plugins have been injected, we are in a server environment.\n      // So we can't tell if the event name is correct for sure, but we can filter\n      // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n      if (INVALID_EVENT_NAME_REGEX.test(name)) {\n        warning$1(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.', name);\n      }\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // Let the ARIA attribute hook validate ARIA attributes\n    if (rARIA$1.test(name) || rARIACamel$1.test(name)) {\n      return true;\n    }\n\n    if (lowerCasedName === 'innerhtml') {\n      warning$1(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'aria') {\n      warning$1(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {\n      warning$1(false, 'Received a `%s` for a string attribute `is`. If this is expected, cast ' + 'the value to a string.', typeof value);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'number' && isNaN(value)) {\n      warning$1(false, 'Received NaN for the `%s` attribute. If this is expected, cast ' + 'the value to a string.', name);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    var propertyInfo = getPropertyInfo(name);\n    var isReserved = propertyInfo !== null && propertyInfo.type === RESERVED;\n\n    // Known attributes should match the casing specified in the property config.\n    if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n      var standardName = possibleStandardNames[lowerCasedName];\n      if (standardName !== name) {\n        warning$1(false, 'Invalid DOM property `%s`. Did you mean `%s`?', name, standardName);\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (!isReserved && name !== lowerCasedName) {\n      // Unknown attributes should have lowercase casing since that's how they\n      // will be cased anyway with server rendering.\n      warning$1(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.', name, lowerCasedName);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    if (typeof value === 'boolean' && shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      if (value) {\n        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.', value, name, name, value, name);\n      } else {\n        warning$1(false, 'Received `%s` for a non-boolean attribute `%s`.\\n\\n' + 'If you want to write it to the DOM, pass a string instead: ' + '%s=\"%s\" or %s={value.toString()}.\\n\\n' + 'If you used to conditionally omit it with %s={condition && value}, ' + 'pass %s={condition ? value : undefined} instead.', value, name, name, value, name, name, name);\n      }\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // Now that we've validated casing, do not validate\n    // data types for reserved props\n    if (isReserved) {\n      return true;\n    }\n\n    // Warn when a known attribute is a bad type\n    if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, false)) {\n      warnedProperties$1[name] = true;\n      return false;\n    }\n\n    // Warn when passing the strings 'false' or 'true' into a boolean prop\n    if ((value === 'false' || value === 'true') && propertyInfo !== null && propertyInfo.type === BOOLEAN) {\n      warning$1(false, 'Received the string `%s` for the boolean attribute `%s`. ' + '%s ' + 'Did you mean %s={%s}?', value, name, value === 'false' ? 'The browser will interpret it as a truthy value.' : 'Although this works, it will not work as expected if you pass the string \"false\".', name, value);\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    return true;\n  };\n}\n\nvar warnUnknownProperties = function (type, props, canUseEventSystem) {\n  var unknownProps = [];\n  for (var key in props) {\n    var isValid = validateProperty$1(type, key, props[key], canUseEventSystem);\n    if (!isValid) {\n      unknownProps.push(key);\n    }\n  }\n\n  var unknownPropString = unknownProps.map(function (prop) {\n    return '`' + prop + '`';\n  }).join(', ');\n  if (unknownProps.length === 1) {\n    warning$1(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n  } else if (unknownProps.length > 1) {\n    warning$1(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior', unknownPropString, type);\n  }\n};\n\nfunction validateProperties$2(type, props, canUseEventSystem) {\n  if (isCustomComponent(type, props)) {\n    return;\n  }\n  warnUnknownProperties(type, props, canUseEventSystem);\n}\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n// Based on reading the React.Children implementation. TODO: type this somewhere?\n\nvar toArray = React.Children.toArray;\n\n// This is only used in DEV.\n// Each entry is `this.stack` from a currently executing renderer instance.\n// (There may be more than one because ReactDOMServer is reentrant).\n// Each stack is an array of frames which may contain nested stacks of elements.\nvar currentDebugStacks = [];\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar ReactDebugCurrentFrame = void 0;\nvar prevGetCurrentStackImpl = null;\nvar getCurrentServerStackImpl = function () {\n  return '';\n};\nvar describeStackFrame = function (element) {\n  return '';\n};\n\nvar validatePropertiesInDevelopment = function (type, props) {};\nvar pushCurrentDebugStack = function (stack) {};\nvar pushElementToDebugStack = function (element) {};\nvar popCurrentDebugStack = function () {};\nvar hasWarnedAboutUsingContextAsConsumer = false;\n\n{\n  ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\n  validatePropertiesInDevelopment = function (type, props) {\n    validateProperties(type, props);\n    validateProperties$1(type, props);\n    validateProperties$2(type, props, /* canUseEventSystem */false);\n  };\n\n  describeStackFrame = function (element) {\n    var source = element._source;\n    var type = element.type;\n    var name = getComponentName(type);\n    var ownerName = null;\n    return describeComponentFrame(name, source, ownerName);\n  };\n\n  pushCurrentDebugStack = function (stack) {\n    currentDebugStacks.push(stack);\n\n    if (currentDebugStacks.length === 1) {\n      // We are entering a server renderer.\n      // Remember the previous (e.g. client) global stack implementation.\n      prevGetCurrentStackImpl = ReactDebugCurrentFrame.getCurrentStack;\n      ReactDebugCurrentFrame.getCurrentStack = getCurrentServerStackImpl;\n    }\n  };\n\n  pushElementToDebugStack = function (element) {\n    // For the innermost executing ReactDOMServer call,\n    var stack = currentDebugStacks[currentDebugStacks.length - 1];\n    // Take the innermost executing frame (e.g. <Foo>),\n    var frame = stack[stack.length - 1];\n    // and record that it has one more element associated with it.\n    frame.debugElementStack.push(element);\n    // We only need this because we tail-optimize single-element\n    // children and directly handle them in an inner loop instead of\n    // creating separate frames for them.\n  };\n\n  popCurrentDebugStack = function () {\n    currentDebugStacks.pop();\n\n    if (currentDebugStacks.length === 0) {\n      // We are exiting the server renderer.\n      // Restore the previous (e.g. client) global stack implementation.\n      ReactDebugCurrentFrame.getCurrentStack = prevGetCurrentStackImpl;\n      prevGetCurrentStackImpl = null;\n    }\n  };\n\n  getCurrentServerStackImpl = function () {\n    if (currentDebugStacks.length === 0) {\n      // Nothing is currently rendering.\n      return '';\n    }\n    // ReactDOMServer is reentrant so there may be multiple calls at the same time.\n    // Take the frames from the innermost call which is the last in the array.\n    var frames = currentDebugStacks[currentDebugStacks.length - 1];\n    var stack = '';\n    // Go through every frame in the stack from the innermost one.\n    for (var i = frames.length - 1; i >= 0; i--) {\n      var frame = frames[i];\n      // Every frame might have more than one debug element stack entry associated with it.\n      // This is because single-child nesting doesn't create materialized frames.\n      // Instead it would push them through `pushElementToDebugStack()`.\n      var _debugElementStack = frame.debugElementStack;\n      for (var ii = _debugElementStack.length - 1; ii >= 0; ii--) {\n        stack += describeStackFrame(_debugElementStack[ii]);\n      }\n    }\n    return stack;\n  };\n}\n\nvar didWarnDefaultInputValue = false;\nvar didWarnDefaultChecked = false;\nvar didWarnDefaultSelectValue = false;\nvar didWarnDefaultTextareaValue = false;\nvar didWarnInvalidOptionChildren = false;\nvar didWarnAboutNoopUpdateForComponent = {};\nvar didWarnAboutBadClass = {};\nvar didWarnAboutDeprecatedWillMount = {};\nvar didWarnAboutUndefinedDerivedState = {};\nvar didWarnAboutUninitializedState = {};\nvar valuePropNames = ['value', 'defaultValue'];\nvar newlineEatingTags = {\n  listing: true,\n  pre: true,\n  textarea: true\n};\n\n// We accept any tag to be rendered but since this gets injected into arbitrary\n// HTML, we want to make sure that it's a safe tag.\n// http://www.w3.org/TR/REC-xml/#NT-Name\nvar VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\\.\\-\\d]*$/; // Simplified subset\nvar validatedTagCache = {};\nfunction validateDangerousTag(tag) {\n  if (!validatedTagCache.hasOwnProperty(tag)) {\n    !VALID_TAG_REGEX.test(tag) ? invariant(false, 'Invalid tag: %s', tag) : void 0;\n    validatedTagCache[tag] = true;\n  }\n}\n\nvar styleNameCache = {};\nvar processStyleName = function (styleName) {\n  if (styleNameCache.hasOwnProperty(styleName)) {\n    return styleNameCache[styleName];\n  }\n  var result = hyphenateStyleName(styleName);\n  styleNameCache[styleName] = result;\n  return result;\n};\n\nfunction createMarkupForStyles(styles) {\n  var serialized = '';\n  var delimiter = '';\n  for (var styleName in styles) {\n    if (!styles.hasOwnProperty(styleName)) {\n      continue;\n    }\n    var isCustomProperty = styleName.indexOf('--') === 0;\n    var styleValue = styles[styleName];\n    {\n      if (!isCustomProperty) {\n        warnValidStyle$1(styleName, styleValue);\n      }\n    }\n    if (styleValue != null) {\n      serialized += delimiter + processStyleName(styleName) + ':';\n      serialized += dangerousStyleValue(styleName, styleValue, isCustomProperty);\n\n      delimiter = ';';\n    }\n  }\n  return serialized || null;\n}\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && getComponentName(_constructor) || 'ReactClass';\n    var warningKey = componentName + '.' + callerName;\n    if (didWarnAboutNoopUpdateForComponent[warningKey]) {\n      return;\n    }\n\n    warningWithoutStack$1(false, '%s(...): Can only update a mounting component. ' + 'This usually means you called %s() outside componentWillMount() on the server. ' + 'This is a no-op.\\n\\nPlease check the code for the %s component.', callerName, callerName, componentName);\n    didWarnAboutNoopUpdateForComponent[warningKey] = true;\n  }\n}\n\nfunction shouldConstruct(Component) {\n  return Component.prototype && Component.prototype.isReactComponent;\n}\n\nfunction getNonChildrenInnerMarkup(props) {\n  var innerHTML = props.dangerouslySetInnerHTML;\n  if (innerHTML != null) {\n    if (innerHTML.__html != null) {\n      return innerHTML.__html;\n    }\n  } else {\n    var content = props.children;\n    if (typeof content === 'string' || typeof content === 'number') {\n      return escapeTextForBrowser(content);\n    }\n  }\n  return null;\n}\n\nfunction flattenTopLevelChildren(children) {\n  if (!React.isValidElement(children)) {\n    return toArray(children);\n  }\n  var element = children;\n  if (element.type !== REACT_FRAGMENT_TYPE) {\n    return [element];\n  }\n  var fragmentChildren = element.props.children;\n  if (!React.isValidElement(fragmentChildren)) {\n    return toArray(fragmentChildren);\n  }\n  var fragmentChildElement = fragmentChildren;\n  return [fragmentChildElement];\n}\n\nfunction flattenOptionChildren(children) {\n  if (children === undefined || children === null) {\n    return children;\n  }\n  var content = '';\n  // Flatten children and warn if they aren't strings or numbers;\n  // invalid types are ignored.\n  React.Children.forEach(children, function (child) {\n    if (child == null) {\n      return;\n    }\n    content += child;\n    {\n      if (!didWarnInvalidOptionChildren && typeof child !== 'string' && typeof child !== 'number') {\n        didWarnInvalidOptionChildren = true;\n        warning$1(false, 'Only strings and numbers are supported as <option> children.');\n      }\n    }\n  });\n  return content;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar STYLE = 'style';\nvar RESERVED_PROPS = {\n  children: null,\n  dangerouslySetInnerHTML: null,\n  suppressContentEditableWarning: null,\n  suppressHydrationWarning: null\n};\n\nfunction createOpenTagMarkup(tagVerbatim, tagLowercase, props, namespace, makeStaticMarkup, isRootElement) {\n  var ret = '<' + tagVerbatim;\n\n  for (var propKey in props) {\n    if (!hasOwnProperty.call(props, propKey)) {\n      continue;\n    }\n    var propValue = props[propKey];\n    if (propValue == null) {\n      continue;\n    }\n    if (propKey === STYLE) {\n      propValue = createMarkupForStyles(propValue);\n    }\n    var markup = null;\n    if (isCustomComponent(tagLowercase, props)) {\n      if (!RESERVED_PROPS.hasOwnProperty(propKey)) {\n        markup = createMarkupForCustomAttribute(propKey, propValue);\n      }\n    } else {\n      markup = createMarkupForProperty(propKey, propValue);\n    }\n    if (markup) {\n      ret += ' ' + markup;\n    }\n  }\n\n  // For static pages, no need to put React ID and checksum. Saves lots of\n  // bytes.\n  if (makeStaticMarkup) {\n    return ret;\n  }\n\n  if (isRootElement) {\n    ret += ' ' + createMarkupForRoot();\n  }\n  return ret;\n}\n\nfunction validateRenderResult(child, type) {\n  if (child === undefined) {\n    invariant(false, '%s(...): Nothing was returned from render. This usually means a return statement is missing. Or, to render nothing, return null.', getComponentName(type) || 'Component');\n  }\n}\n\nfunction resolve(child, context, threadID) {\n  while (React.isValidElement(child)) {\n    // Safe because we just checked it's an element.\n    var element = child;\n    var Component = element.type;\n    {\n      pushElementToDebugStack(element);\n    }\n    if (typeof Component !== 'function') {\n      break;\n    }\n    processChild(element, Component);\n  }\n\n  // Extra closure so queue and replace can be captured properly\n  function processChild(element, Component) {\n    var publicContext = processContext(Component, context, threadID);\n\n    var queue = [];\n    var replace = false;\n    var updater = {\n      isMounted: function (publicInstance) {\n        return false;\n      },\n      enqueueForceUpdate: function (publicInstance) {\n        if (queue === null) {\n          warnNoop(publicInstance, 'forceUpdate');\n          return null;\n        }\n      },\n      enqueueReplaceState: function (publicInstance, completeState) {\n        replace = true;\n        queue = [completeState];\n      },\n      enqueueSetState: function (publicInstance, currentPartialState) {\n        if (queue === null) {\n          warnNoop(publicInstance, 'setState');\n          return null;\n        }\n        queue.push(currentPartialState);\n      }\n    };\n\n    var inst = void 0;\n    if (shouldConstruct(Component)) {\n      inst = new Component(element.props, publicContext, updater);\n\n      if (typeof Component.getDerivedStateFromProps === 'function') {\n        {\n          if (inst.state === null || inst.state === undefined) {\n            var componentName = getComponentName(Component) || 'Unknown';\n            if (!didWarnAboutUninitializedState[componentName]) {\n              warningWithoutStack$1(false, '`%s` uses `getDerivedStateFromProps` but its initial state is ' + '%s. This is not recommended. Instead, define the initial state by ' + 'assigning an object to `this.state` in the constructor of `%s`. ' + 'This ensures that `getDerivedStateFromProps` arguments have a consistent shape.', componentName, inst.state === null ? 'null' : 'undefined', componentName);\n              didWarnAboutUninitializedState[componentName] = true;\n            }\n          }\n        }\n\n        var partialState = Component.getDerivedStateFromProps.call(null, element.props, inst.state);\n\n        {\n          if (partialState === undefined) {\n            var _componentName = getComponentName(Component) || 'Unknown';\n            if (!didWarnAboutUndefinedDerivedState[_componentName]) {\n              warningWithoutStack$1(false, '%s.getDerivedStateFromProps(): A valid state object (or null) must be returned. ' + 'You have returned undefined.', _componentName);\n              didWarnAboutUndefinedDerivedState[_componentName] = true;\n            }\n          }\n        }\n\n        if (partialState != null) {\n          inst.state = _assign({}, inst.state, partialState);\n        }\n      }\n    } else {\n      {\n        if (Component.prototype && typeof Component.prototype.render === 'function') {\n          var _componentName2 = getComponentName(Component) || 'Unknown';\n\n          if (!didWarnAboutBadClass[_componentName2]) {\n            warningWithoutStack$1(false, \"The <%s /> component appears to have a render method, but doesn't extend React.Component. \" + 'This is likely to cause errors. Change %s to extend React.Component instead.', _componentName2, _componentName2);\n            didWarnAboutBadClass[_componentName2] = true;\n          }\n        }\n      }\n      var componentIdentity = {};\n      prepareToUseHooks(componentIdentity);\n      inst = Component(element.props, publicContext, updater);\n      inst = finishHooks(Component, element.props, inst, publicContext);\n\n      if (inst == null || inst.render == null) {\n        child = inst;\n        validateRenderResult(child, Component);\n        return;\n      }\n    }\n\n    inst.props = element.props;\n    inst.context = publicContext;\n    inst.updater = updater;\n\n    var initialState = inst.state;\n    if (initialState === undefined) {\n      inst.state = initialState = null;\n    }\n    if (typeof inst.UNSAFE_componentWillMount === 'function' || typeof inst.componentWillMount === 'function') {\n      if (typeof inst.componentWillMount === 'function') {\n        {\n          if (warnAboutDeprecatedLifecycles && inst.componentWillMount.__suppressDeprecationWarning !== true) {\n            var _componentName3 = getComponentName(Component) || 'Unknown';\n\n            if (!didWarnAboutDeprecatedWillMount[_componentName3]) {\n              lowPriorityWarning$1(false, '%s: componentWillMount() is deprecated and will be ' + 'removed in the next major version. Read about the motivations ' + 'behind this change: ' + 'https://fb.me/react-async-component-lifecycle-hooks' + '\\n\\n' + 'As a temporary workaround, you can rename to ' + 'UNSAFE_componentWillMount instead.', _componentName3);\n              didWarnAboutDeprecatedWillMount[_componentName3] = true;\n            }\n          }\n        }\n\n        // In order to support react-lifecycles-compat polyfilled components,\n        // Unsafe lifecycles should not be invoked for any component with the new gDSFP.\n        if (typeof Component.getDerivedStateFromProps !== 'function') {\n          inst.componentWillMount();\n        }\n      }\n      if (typeof inst.UNSAFE_componentWillMount === 'function' && typeof Component.getDerivedStateFromProps !== 'function') {\n        // In order to support react-lifecycles-compat polyfilled components,\n        // Unsafe lifecycles should not be invoked for any component with the new gDSFP.\n        inst.UNSAFE_componentWillMount();\n      }\n      if (queue.length) {\n        var oldQueue = queue;\n        var oldReplace = replace;\n        queue = null;\n        replace = false;\n\n        if (oldReplace && oldQueue.length === 1) {\n          inst.state = oldQueue[0];\n        } else {\n          var nextState = oldReplace ? oldQueue[0] : inst.state;\n          var dontMutate = true;\n          for (var i = oldReplace ? 1 : 0; i < oldQueue.length; i++) {\n            var partial = oldQueue[i];\n            var _partialState = typeof partial === 'function' ? partial.call(inst, nextState, element.props, publicContext) : partial;\n            if (_partialState != null) {\n              if (dontMutate) {\n                dontMutate = false;\n                nextState = _assign({}, nextState, _partialState);\n              } else {\n                _assign(nextState, _partialState);\n              }\n            }\n          }\n          inst.state = nextState;\n        }\n      } else {\n        queue = null;\n      }\n    }\n    child = inst.render();\n\n    {\n      if (child === undefined && inst.render._isMockFunction) {\n        // This is probably bad practice. Consider warning here and\n        // deprecating this convenience.\n        child = null;\n      }\n    }\n    validateRenderResult(child, Component);\n\n    var childContext = void 0;\n    if (typeof inst.getChildContext === 'function') {\n      var childContextTypes = Component.childContextTypes;\n      if (typeof childContextTypes === 'object') {\n        childContext = inst.getChildContext();\n        for (var contextKey in childContext) {\n          !(contextKey in childContextTypes) ? invariant(false, '%s.getChildContext(): key \"%s\" is not defined in childContextTypes.', getComponentName(Component) || 'Unknown', contextKey) : void 0;\n        }\n      } else {\n        warningWithoutStack$1(false, '%s.getChildContext(): childContextTypes must be defined in order to ' + 'use getChildContext().', getComponentName(Component) || 'Unknown');\n      }\n    }\n    if (childContext) {\n      context = _assign({}, context, childContext);\n    }\n  }\n  return { child: child, context: context };\n}\n\nvar ReactDOMServerRenderer = function () {\n  // DEV-only\n\n  // TODO: type this more strictly:\n  function ReactDOMServerRenderer(children, makeStaticMarkup) {\n    _classCallCheck(this, ReactDOMServerRenderer);\n\n    var flatChildren = flattenTopLevelChildren(children);\n\n    var topFrame = {\n      type: null,\n      // Assume all trees start in the HTML namespace (not totally true, but\n      // this is what we did historically)\n      domNamespace: Namespaces.html,\n      children: flatChildren,\n      childIndex: 0,\n      context: emptyObject,\n      footer: ''\n    };\n    {\n      topFrame.debugElementStack = [];\n    }\n    this.threadID = allocThreadID();\n    this.stack = [topFrame];\n    this.exhausted = false;\n    this.currentSelectValue = null;\n    this.previousWasTextNode = false;\n    this.makeStaticMarkup = makeStaticMarkup;\n    this.suspenseDepth = 0;\n\n    // Context (new API)\n    this.contextIndex = -1;\n    this.contextStack = [];\n    this.contextValueStack = [];\n    {\n      this.contextProviderStack = [];\n    }\n  }\n\n  ReactDOMServerRenderer.prototype.destroy = function destroy() {\n    if (!this.exhausted) {\n      this.exhausted = true;\n      freeThreadID(this.threadID);\n    }\n  };\n\n  /**\n   * Note: We use just two stacks regardless of how many context providers you have.\n   * Providers are always popped in the reverse order to how they were pushed\n   * so we always know on the way down which provider you'll encounter next on the way up.\n   * On the way down, we push the current provider, and its context value *before*\n   * we mutated it, onto the stacks. Therefore, on the way up, we always know which\n   * provider needs to be \"restored\" to which value.\n   * https://github.com/facebook/react/pull/12985#issuecomment-396301248\n   */\n\n  ReactDOMServerRenderer.prototype.pushProvider = function pushProvider(provider) {\n    var index = ++this.contextIndex;\n    var context = provider.type._context;\n    var threadID = this.threadID;\n    validateContextBounds(context, threadID);\n    var previousValue = context[threadID];\n\n    // Remember which value to restore this context to on our way up.\n    this.contextStack[index] = context;\n    this.contextValueStack[index] = previousValue;\n    {\n      // Only used for push/pop mismatch warnings.\n      this.contextProviderStack[index] = provider;\n    }\n\n    // Mutate the current value.\n    context[threadID] = provider.props.value;\n  };\n\n  ReactDOMServerRenderer.prototype.popProvider = function popProvider(provider) {\n    var index = this.contextIndex;\n    {\n      !(index > -1 && provider === this.contextProviderStack[index]) ? warningWithoutStack$1(false, 'Unexpected pop.') : void 0;\n    }\n\n    var context = this.contextStack[index];\n    var previousValue = this.contextValueStack[index];\n\n    // \"Hide\" these null assignments from Flow by using `any`\n    // because conceptually they are deletions--as long as we\n    // promise to never access values beyond `this.contextIndex`.\n    this.contextStack[index] = null;\n    this.contextValueStack[index] = null;\n    {\n      this.contextProviderStack[index] = null;\n    }\n    this.contextIndex--;\n\n    // Restore to the previous value we stored as we were walking down.\n    // We've already verified that this context has been expanded to accommodate\n    // this thread id, so we don't need to do it again.\n    context[this.threadID] = previousValue;\n  };\n\n  ReactDOMServerRenderer.prototype.read = function read(bytes) {\n    if (this.exhausted) {\n      return null;\n    }\n\n    var prevThreadID = currentThreadID;\n    setCurrentThreadID(this.threadID);\n    var prevDispatcher = ReactCurrentDispatcher.current;\n    ReactCurrentDispatcher.current = Dispatcher;\n    try {\n      // Markup generated within <Suspense> ends up buffered until we know\n      // nothing in that boundary suspended\n      var out = [''];\n      var suspended = false;\n      while (out[0].length < bytes) {\n        if (this.stack.length === 0) {\n          this.exhausted = true;\n          freeThreadID(this.threadID);\n          break;\n        }\n        var frame = this.stack[this.stack.length - 1];\n        if (suspended || frame.childIndex >= frame.children.length) {\n          var _footer = frame.footer;\n          if (_footer !== '') {\n            this.previousWasTextNode = false;\n          }\n          this.stack.pop();\n          if (frame.type === 'select') {\n            this.currentSelectValue = null;\n          } else if (frame.type != null && frame.type.type != null && frame.type.type.$$typeof === REACT_PROVIDER_TYPE) {\n            var provider = frame.type;\n            this.popProvider(provider);\n          } else if (frame.type === REACT_SUSPENSE_TYPE) {\n            this.suspenseDepth--;\n            var buffered = out.pop();\n\n            if (suspended) {\n              suspended = false;\n              // If rendering was suspended at this boundary, render the fallbackFrame\n              var _fallbackFrame = frame.fallbackFrame;\n              !_fallbackFrame ? invariant(false, 'suspense fallback not found, something is broken') : void 0;\n              this.stack.push(_fallbackFrame);\n              // Skip flushing output since we're switching to the fallback\n              continue;\n            } else {\n              out[this.suspenseDepth] += buffered;\n            }\n          }\n\n          // Flush output\n          out[this.suspenseDepth] += _footer;\n          continue;\n        }\n        var child = frame.children[frame.childIndex++];\n\n        var outBuffer = '';\n        {\n          pushCurrentDebugStack(this.stack);\n          // We're starting work on this frame, so reset its inner stack.\n          frame.debugElementStack.length = 0;\n        }\n        try {\n          outBuffer += this.render(child, frame.context, frame.domNamespace);\n        } catch (err) {\n          if (enableSuspenseServerRenderer && typeof err.then === 'function') {\n            suspended = true;\n          } else {\n            throw err;\n          }\n        } finally {\n          {\n            popCurrentDebugStack();\n          }\n        }\n        if (out.length <= this.suspenseDepth) {\n          out.push('');\n        }\n        out[this.suspenseDepth] += outBuffer;\n      }\n      return out[0];\n    } finally {\n      ReactCurrentDispatcher.current = prevDispatcher;\n      setCurrentThreadID(prevThreadID);\n    }\n  };\n\n  ReactDOMServerRenderer.prototype.render = function render(child, context, parentNamespace) {\n    if (typeof child === 'string' || typeof child === 'number') {\n      var text = '' + child;\n      if (text === '') {\n        return '';\n      }\n      if (this.makeStaticMarkup) {\n        return escapeTextForBrowser(text);\n      }\n      if (this.previousWasTextNode) {\n        return '<!-- -->' + escapeTextForBrowser(text);\n      }\n      this.previousWasTextNode = true;\n      return escapeTextForBrowser(text);\n    } else {\n      var nextChild = void 0;\n\n      var _resolve = resolve(child, context, this.threadID);\n\n      nextChild = _resolve.child;\n      context = _resolve.context;\n\n      if (nextChild === null || nextChild === false) {\n        return '';\n      } else if (!React.isValidElement(nextChild)) {\n        if (nextChild != null && nextChild.$$typeof != null) {\n          // Catch unexpected special types early.\n          var $$typeof = nextChild.$$typeof;\n          !($$typeof !== REACT_PORTAL_TYPE) ? invariant(false, 'Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render.') : void 0;\n          // Catch-all to prevent an infinite loop if React.Children.toArray() supports some new type.\n          invariant(false, 'Unknown element-like object type: %s. This is likely a bug in React. Please file an issue.', $$typeof.toString());\n        }\n        var nextChildren = toArray(nextChild);\n        var frame = {\n          type: null,\n          domNamespace: parentNamespace,\n          children: nextChildren,\n          childIndex: 0,\n          context: context,\n          footer: ''\n        };\n        {\n          frame.debugElementStack = [];\n        }\n        this.stack.push(frame);\n        return '';\n      }\n      // Safe because we just checked it's an element.\n      var nextElement = nextChild;\n      var elementType = nextElement.type;\n\n      if (typeof elementType === 'string') {\n        return this.renderDOM(nextElement, context, parentNamespace);\n      }\n\n      switch (elementType) {\n        case REACT_STRICT_MODE_TYPE:\n        case REACT_CONCURRENT_MODE_TYPE:\n        case REACT_PROFILER_TYPE:\n        case REACT_FRAGMENT_TYPE:\n          {\n            var _nextChildren = toArray(nextChild.props.children);\n            var _frame = {\n              type: null,\n              domNamespace: parentNamespace,\n              children: _nextChildren,\n              childIndex: 0,\n              context: context,\n              footer: ''\n            };\n            {\n              _frame.debugElementStack = [];\n            }\n            this.stack.push(_frame);\n            return '';\n          }\n        case REACT_SUSPENSE_TYPE:\n          {\n            if (enableSuspenseServerRenderer) {\n              var fallbackChildren = toArray(nextChild.props.fallback);\n              var _nextChildren2 = toArray(nextChild.props.children);\n              var _fallbackFrame2 = {\n                type: null,\n                domNamespace: parentNamespace,\n                children: fallbackChildren,\n                childIndex: 0,\n                context: context,\n                footer: '',\n                out: ''\n              };\n              var _frame2 = {\n                fallbackFrame: _fallbackFrame2,\n                type: REACT_SUSPENSE_TYPE,\n                domNamespace: parentNamespace,\n                children: _nextChildren2,\n                childIndex: 0,\n                context: context,\n                footer: ''\n              };\n              {\n                _frame2.debugElementStack = [];\n                _fallbackFrame2.debugElementStack = [];\n              }\n              this.stack.push(_frame2);\n              this.suspenseDepth++;\n              return '';\n            } else {\n              invariant(false, 'ReactDOMServer does not yet support Suspense.');\n            }\n          }\n        // eslint-disable-next-line-no-fallthrough\n        default:\n          break;\n      }\n      if (typeof elementType === 'object' && elementType !== null) {\n        switch (elementType.$$typeof) {\n          case REACT_FORWARD_REF_TYPE:\n            {\n              var element = nextChild;\n              var _nextChildren3 = void 0;\n              var componentIdentity = {};\n              prepareToUseHooks(componentIdentity);\n              _nextChildren3 = elementType.render(element.props, element.ref);\n              _nextChildren3 = finishHooks(elementType.render, element.props, _nextChildren3, element.ref);\n              _nextChildren3 = toArray(_nextChildren3);\n              var _frame3 = {\n                type: null,\n                domNamespace: parentNamespace,\n                children: _nextChildren3,\n                childIndex: 0,\n                context: context,\n                footer: ''\n              };\n              {\n                _frame3.debugElementStack = [];\n              }\n              this.stack.push(_frame3);\n              return '';\n            }\n          case REACT_MEMO_TYPE:\n            {\n              var _element = nextChild;\n              var _nextChildren4 = [React.createElement(elementType.type, _assign({ ref: _element.ref }, _element.props))];\n              var _frame4 = {\n                type: null,\n                domNamespace: parentNamespace,\n                children: _nextChildren4,\n                childIndex: 0,\n                context: context,\n                footer: ''\n              };\n              {\n                _frame4.debugElementStack = [];\n              }\n              this.stack.push(_frame4);\n              return '';\n            }\n          case REACT_PROVIDER_TYPE:\n            {\n              var provider = nextChild;\n              var nextProps = provider.props;\n              var _nextChildren5 = toArray(nextProps.children);\n              var _frame5 = {\n                type: provider,\n                domNamespace: parentNamespace,\n                children: _nextChildren5,\n                childIndex: 0,\n                context: context,\n                footer: ''\n              };\n              {\n                _frame5.debugElementStack = [];\n              }\n\n              this.pushProvider(provider);\n\n              this.stack.push(_frame5);\n              return '';\n            }\n          case REACT_CONTEXT_TYPE:\n            {\n              var reactContext = nextChild.type;\n              // The logic below for Context differs depending on PROD or DEV mode. In\n              // DEV mode, we create a separate object for Context.Consumer that acts\n              // like a proxy to Context. This proxy object adds unnecessary code in PROD\n              // so we use the old behaviour (Context.Consumer references Context) to\n              // reduce size and overhead. The separate object references context via\n              // a property called \"_context\", which also gives us the ability to check\n              // in DEV mode if this property exists or not and warn if it does not.\n              {\n                if (reactContext._context === undefined) {\n                  // This may be because it's a Context (rather than a Consumer).\n                  // Or it may be because it's older React where they're the same thing.\n                  // We only want to warn if we're sure it's a new React.\n                  if (reactContext !== reactContext.Consumer) {\n                    if (!hasWarnedAboutUsingContextAsConsumer) {\n                      hasWarnedAboutUsingContextAsConsumer = true;\n                      warning$1(false, 'Rendering <Context> directly is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n                    }\n                  }\n                } else {\n                  reactContext = reactContext._context;\n                }\n              }\n              var _nextProps = nextChild.props;\n              var threadID = this.threadID;\n              validateContextBounds(reactContext, threadID);\n              var nextValue = reactContext[threadID];\n\n              var _nextChildren6 = toArray(_nextProps.children(nextValue));\n              var _frame6 = {\n                type: nextChild,\n                domNamespace: parentNamespace,\n                children: _nextChildren6,\n                childIndex: 0,\n                context: context,\n                footer: ''\n              };\n              {\n                _frame6.debugElementStack = [];\n              }\n              this.stack.push(_frame6);\n              return '';\n            }\n          case REACT_LAZY_TYPE:\n            invariant(false, 'ReactDOMServer does not yet support lazy-loaded components.');\n        }\n      }\n\n      var info = '';\n      {\n        var owner = nextElement._owner;\n        if (elementType === undefined || typeof elementType === 'object' && elementType !== null && Object.keys(elementType).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        var ownerName = owner ? getComponentName(owner) : null;\n        if (ownerName) {\n          info += '\\n\\nCheck the render method of `' + ownerName + '`.';\n        }\n      }\n      invariant(false, 'Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s', elementType == null ? elementType : typeof elementType, info);\n    }\n  };\n\n  ReactDOMServerRenderer.prototype.renderDOM = function renderDOM(element, context, parentNamespace) {\n    var tag = element.type.toLowerCase();\n\n    var namespace = parentNamespace;\n    if (parentNamespace === Namespaces.html) {\n      namespace = getIntrinsicNamespace(tag);\n    }\n\n    {\n      if (namespace === Namespaces.html) {\n        // Should this check be gated by parent namespace? Not sure we want to\n        // allow <SVG> or <mATH>.\n        !(tag === element.type) ? warning$1(false, '<%s /> is using incorrect casing. ' + 'Use PascalCase for React components, ' + 'or lowercase for HTML elements.', element.type) : void 0;\n      }\n    }\n\n    validateDangerousTag(tag);\n\n    var props = element.props;\n    if (tag === 'input') {\n      {\n        ReactControlledValuePropTypes.checkPropTypes('input', props);\n\n        if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnDefaultChecked) {\n          warning$1(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', 'A component', props.type);\n          didWarnDefaultChecked = true;\n        }\n        if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultInputValue) {\n          warning$1(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', 'A component', props.type);\n          didWarnDefaultInputValue = true;\n        }\n      }\n\n      props = _assign({\n        type: undefined\n      }, props, {\n        defaultChecked: undefined,\n        defaultValue: undefined,\n        value: props.value != null ? props.value : props.defaultValue,\n        checked: props.checked != null ? props.checked : props.defaultChecked\n      });\n    } else if (tag === 'textarea') {\n      {\n        ReactControlledValuePropTypes.checkPropTypes('textarea', props);\n        if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultTextareaValue) {\n          warning$1(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n          didWarnDefaultTextareaValue = true;\n        }\n      }\n\n      var initialValue = props.value;\n      if (initialValue == null) {\n        var defaultValue = props.defaultValue;\n        // TODO (yungsters): Remove support for children content in <textarea>.\n        var textareaChildren = props.children;\n        if (textareaChildren != null) {\n          {\n            warning$1(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');\n          }\n          !(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;\n          if (Array.isArray(textareaChildren)) {\n            !(textareaChildren.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;\n            textareaChildren = textareaChildren[0];\n          }\n\n          defaultValue = '' + textareaChildren;\n        }\n        if (defaultValue == null) {\n          defaultValue = '';\n        }\n        initialValue = defaultValue;\n      }\n\n      props = _assign({}, props, {\n        value: undefined,\n        children: '' + initialValue\n      });\n    } else if (tag === 'select') {\n      {\n        ReactControlledValuePropTypes.checkPropTypes('select', props);\n\n        for (var i = 0; i < valuePropNames.length; i++) {\n          var propName = valuePropNames[i];\n          if (props[propName] == null) {\n            continue;\n          }\n          var isArray = Array.isArray(props[propName]);\n          if (props.multiple && !isArray) {\n            warning$1(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.', propName);\n          } else if (!props.multiple && isArray) {\n            warning$1(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.', propName);\n          }\n        }\n\n        if (props.value !== undefined && props.defaultValue !== undefined && !didWarnDefaultSelectValue) {\n          warning$1(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');\n          didWarnDefaultSelectValue = true;\n        }\n      }\n      this.currentSelectValue = props.value != null ? props.value : props.defaultValue;\n      props = _assign({}, props, {\n        value: undefined\n      });\n    } else if (tag === 'option') {\n      var selected = null;\n      var selectValue = this.currentSelectValue;\n      var optionChildren = flattenOptionChildren(props.children);\n      if (selectValue != null) {\n        var value = void 0;\n        if (props.value != null) {\n          value = props.value + '';\n        } else {\n          value = optionChildren;\n        }\n        selected = false;\n        if (Array.isArray(selectValue)) {\n          // multiple\n          for (var j = 0; j < selectValue.length; j++) {\n            if ('' + selectValue[j] === value) {\n              selected = true;\n              break;\n            }\n          }\n        } else {\n          selected = '' + selectValue === value;\n        }\n\n        props = _assign({\n          selected: undefined,\n          children: undefined\n        }, props, {\n          selected: selected,\n          children: optionChildren\n        });\n      }\n    }\n\n    {\n      validatePropertiesInDevelopment(tag, props);\n    }\n\n    assertValidProps(tag, props);\n\n    var out = createOpenTagMarkup(element.type, tag, props, namespace, this.makeStaticMarkup, this.stack.length === 1);\n    var footer = '';\n    if (omittedCloseTags.hasOwnProperty(tag)) {\n      out += '/>';\n    } else {\n      out += '>';\n      footer = '</' + element.type + '>';\n    }\n    var children = void 0;\n    var innerMarkup = getNonChildrenInnerMarkup(props);\n    if (innerMarkup != null) {\n      children = [];\n      if (newlineEatingTags[tag] && innerMarkup.charAt(0) === '\\n') {\n        // text/html ignores the first character in these tags if it's a newline\n        // Prefer to break application/xml over text/html (for now) by adding\n        // a newline specifically to get eaten by the parser. (Alternately for\n        // textareas, replacing \"^\\n\" with \"\\r\\n\" doesn't get eaten, and the first\n        // \\r is normalized out by HTMLTextAreaElement#value.)\n        // See: <http://www.w3.org/TR/html-polyglot/#newlines-in-textarea-and-pre>\n        // See: <http://www.w3.org/TR/html5/syntax.html#element-restrictions>\n        // See: <http://www.w3.org/TR/html5/syntax.html#newlines>\n        // See: Parsing of \"textarea\" \"listing\" and \"pre\" elements\n        //  from <http://www.w3.org/TR/html5/syntax.html#parsing-main-inbody>\n        out += '\\n';\n      }\n      out += innerMarkup;\n    } else {\n      children = toArray(props.children);\n    }\n    var frame = {\n      domNamespace: getChildNamespace(parentNamespace, element.type),\n      type: tag,\n      children: children,\n      childIndex: 0,\n      context: context,\n      footer: footer\n    };\n    {\n      frame.debugElementStack = [];\n    }\n    this.stack.push(frame);\n    this.previousWasTextNode = false;\n    return out;\n  };\n\n  return ReactDOMServerRenderer;\n}();\n\n/**\n * Render a ReactElement to its initial HTML. This should only be used on the\n * server.\n * See https://reactjs.org/docs/react-dom-server.html#rendertostring\n */\nfunction renderToString(element) {\n  var renderer = new ReactDOMServerRenderer(element, false);\n  try {\n    var markup = renderer.read(Infinity);\n    return markup;\n  } finally {\n    renderer.destroy();\n  }\n}\n\n/**\n * Similar to renderToString, except this doesn't create extra DOM attributes\n * such as data-react-id that React uses internally.\n * See https://reactjs.org/docs/react-dom-server.html#rendertostaticmarkup\n */\nfunction renderToStaticMarkup(element) {\n  var renderer = new ReactDOMServerRenderer(element, true);\n  try {\n    var markup = renderer.read(Infinity);\n    return markup;\n  } finally {\n    renderer.destroy();\n  }\n}\n\nfunction renderToNodeStream() {\n  invariant(false, 'ReactDOMServer.renderToNodeStream(): The streaming API is not available in the browser. Use ReactDOMServer.renderToString() instead.');\n}\n\nfunction renderToStaticNodeStream() {\n  invariant(false, 'ReactDOMServer.renderToStaticNodeStream(): The streaming API is not available in the browser. Use ReactDOMServer.renderToStaticMarkup() instead.');\n}\n\n// Note: when changing this, also consider https://github.com/facebook/react/issues/11526\nvar ReactDOMServerBrowser = {\n  renderToString: renderToString,\n  renderToStaticMarkup: renderToStaticMarkup,\n  renderToNodeStream: renderToNodeStream,\n  renderToStaticNodeStream: renderToStaticNodeStream,\n  version: ReactVersion\n};\n\nvar ReactDOMServerBrowser$1 = Object.freeze({\n\tdefault: ReactDOMServerBrowser\n});\n\nvar ReactDOMServer = ( ReactDOMServerBrowser$1 && ReactDOMServerBrowser ) || ReactDOMServerBrowser$1;\n\n// TODO: decide on the top-level export form.\n// This is hacky but makes it work with both Rollup and Jest\nvar server_browser = ReactDOMServer.default || ReactDOMServer;\n\nmodule.exports = server_browser;\n  })();\n}\n\n\n//# sourceURL=webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.development.js?");

/***/ }),

/***/ "./node_modules/react-dom/server.browser.js":
/*!**************************************************!*\
  !*** ./node_modules/react-dom/server.browser.js ***!
  \**************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {

"use strict";
eval("\n\nif (false) {} else {\n  module.exports = __webpack_require__(/*! ./cjs/react-dom-server.browser.development.js */ \"./node_modules/react-dom/cjs/react-dom-server.browser.development.js\");\n}\n\n\n//# sourceURL=webpack:///./node_modules/react-dom/server.browser.js?");

/***/ })

},[['./eventListing/index.js']]]);